summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2005-11-15 18:54:33 +0000
committerJeremy Allison <jra@samba.org>2005-11-15 18:54:33 +0000
commita056ea8bcb4fd5c14fa4f3bcecde88fb91af7c36 (patch)
treea8744e58373517dbcc3db838c4662f9b591f9a3c
parentdb33b9699bdbd1517b5cbe2dfe2850b072fd1745 (diff)
downloadsamba-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.c12
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;