summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2013-07-11 18:09:04 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2013-07-15 09:51:47 +0200
commit73097d3e1e737f4885b96fc47416a013bd5a4d76 (patch)
tree5bd3f5c5e1456bb63eb6a6883ed72cbbaf40c5b9
parent1fa4f9cb2e24794edb8dfcb5a566ec118f11763b (diff)
libdiskfs: fix consistency check
passive is not a zero terminated string but a char * combined with a length. If passivelen == 0, passive may very well be not NULL, and dereferencing that pointer might not be safe. At the very least the consistency check is wrong. Fix that by checking passivelen instead of passive. * libdiskfs/file-set-trans.c (diskfs_S_file_set_translator): Fix sanity check.
-rw-r--r--libdiskfs/file-set-trans.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libdiskfs/file-set-trans.c b/libdiskfs/file-set-trans.c
index 37980015..49303e7c 100644
--- a/libdiskfs/file-set-trans.c
+++ b/libdiskfs/file-set-trans.c
@@ -43,7 +43,7 @@ diskfs_S_file_set_translator (struct protid *cred,
if ((passive_flags & FS_TRANS_SET) && diskfs_check_readonly ())
return EROFS;
- if (passive && passive[passivelen - 1])
+ if (passivelen && passive[passivelen - 1])
return EINVAL;
np = cred->po->np;