From 73097d3e1e737f4885b96fc47416a013bd5a4d76 Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Thu, 11 Jul 2013 18:09:04 +0200 Subject: 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. --- libdiskfs/file-set-trans.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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; -- cgit v1.2.3