Handle ERANGE and retvals for getcwd and fd2path
authorBarret Rhoden <brho@cs.berkeley.edu>
Sat, 18 Jul 2015 19:53:13 +0000 (15:53 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Fri, 24 Jul 2015 07:05:13 +0000 (03:05 -0400)
commit60cc28708d903e4309b29506178591f2554cd1c3
tree9ff4647a83786650aaf2e0d3580af62942c5c1d2
parentd25d50f44b3c949568e281752bd29b5703644af8
Handle ERANGE and retvals for getcwd and fd2path

Both of these functions involve copying paths out to userspace.  We
actually don't need to check PATH_MAX in getcwd; the kernel will copy
out as much as is needed, up to what the user asks for.  If the buffer
isn't big enough, we return ERANGE.

The user could actually use a reasonably sized buffer, then only work up
to PATH_MAX if it gets ERANGE.  We don't do this in glibc.

Also note that fd2path returns 0, not the length of the string, on
success.
kern/src/syscall.c