From: behlendo Date: Tue, 1 Apr 2008 17:00:06 +0000 (+0000) Subject: Apparently it's OK for done to be NULL, which was not clear in the X-Git-Tag: spl-0.4.0~114 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0998fdd6dba7a360131c2addecc8b2d4dc9b7f4a;p=spl Apparently it's OK for done to be NULL, which was not clear in the Solaris man page. Anyway, since apparently this usage is accectable I've updated the function to handle it. git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@63 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c --- diff --git a/include/sys/vmsystm.h b/include/sys/vmsystm.h index 568cb37..fb9ff97 100644 --- a/include/sys/vmsystm.h +++ b/include/sys/vmsystm.h @@ -37,6 +37,8 @@ copyout(const void *from, void *to, size_t len) static __inline__ int copyinstr(const void *from, void *to, size_t len, size_t *done) { + size_t rc; + if (len == 0) return -ENAMETOOLONG; @@ -46,7 +48,9 @@ copyinstr(const void *from, void *to, size_t len, size_t *done) /* XXX: Should return ENAMETOOLONG if 'strlen(from) > len' */ memset(to, 0, len); - *done = copyin(from, to, len - 1); + rc = copyin(from, to, len - 1); + if (done != NULL) + *done = rc; return 0; }