diff options
author | Jeremy Allison <jra@samba.org> | 2005-11-15 18:54:33 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2005-11-15 18:54:33 +0000 |
commit | a056ea8bcb4fd5c14fa4f3bcecde88fb91af7c36 (patch) | |
tree | a8744e58373517dbcc3db838c4662f9b591f9a3c | |
parent | db33b9699bdbd1517b5cbe2dfe2850b072fd1745 (diff) | |
download | samba-a056ea8bcb4fd5c14fa4f3bcecde88fb91af7c36.tar.gz samba-a056ea8bcb4fd5c14fa4f3bcecde88fb91af7c36.tar.xz samba-a056ea8bcb4fd5c14fa4f3bcecde88fb91af7c36.zip |
r11732: Remember to return early if -1 returned from *BSD EA call.
Pointed out by timur@com.bat.ru.
Jeremy.
-rw-r--r-- | source/lib/system.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/source/lib/system.c b/source/lib/system.c index c59fe5c34d9..fead58faae7 100644 --- a/source/lib/system.c +++ b/source/lib/system.c @@ -1387,6 +1387,10 @@ ssize_t sys_getxattr (const char *path, const char *name, void *value, size_t si */ retval = extattr_get_file(path, attrnamespace, attrname, NULL, 0); + if (retval == -1) { + return -1; + } + if(retval > size) { errno = ERANGE; return -1; @@ -1422,6 +1426,10 @@ ssize_t sys_lgetxattr (const char *path, const char *name, void *value, size_t s retval = extattr_get_link(path, attrnamespace, attrname, NULL, 0); + if (retval == -1) { + return -1; + } + if(retval > size) { errno = ERANGE; return -1; @@ -1457,6 +1465,10 @@ ssize_t sys_fgetxattr (int filedes, const char *name, void *value, size_t size) retval = extattr_get_fd(filedes, attrnamespace, attrname, NULL, 0); + if (retval == -1) { + return -1; + } + if(retval > size) { errno = ERANGE; return -1; |