getcwd: return the length of the string instead of just 0
authorRonald G. Minnich <rminnich@google.com>
Wed, 16 Jul 2014 00:13:35 +0000 (17:13 -0700)
committerRonald G. Minnich <rminnich@google.com>
Wed, 16 Jul 2014 00:13:35 +0000 (17:13 -0700)
Useful for Go.

Signed-off-by: Ronald G. Minnich <rminnich@google.com>
kern/src/syscall.c

index 4fd5eb8..c2b741f 100644 (file)
@@ -1554,6 +1554,7 @@ intreg_t sys_getcwd(struct proc *p, char *u_cwd, size_t cwd_l)
                return -1;              /* errno set by do_getcwd */
        if (memcpy_to_user_errno(p, u_cwd, k_cwd, strnlen(k_cwd, cwd_l - 1) + 1))
                retval = -1;
                return -1;              /* errno set by do_getcwd */
        if (memcpy_to_user_errno(p, u_cwd, k_cwd, strnlen(k_cwd, cwd_l - 1) + 1))
                retval = -1;
+       retval = strnlen(k_cwd, cwd_l - 1);
        kfree(kfree_this);
        return retval;
 }
        kfree(kfree_this);
        return retval;
 }