From 0998fdd6dba7a360131c2addecc8b2d4dc9b7f4a Mon Sep 17 00:00:00 2001 From: behlendo Date: Tue, 1 Apr 2008 17:00:06 +0000 Subject: [PATCH] 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 --- include/sys/vmsystm.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/include/sys/vmsystm.h b/include/sys/vmsystm.h index 568cb3775..fb9ff9710 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; }