s3-smbd: prevent call_nt_transact_ioctl() crash in FSCTL_FIND_FILES_BY_SID case.
authorGünther Deschner <gd@samba.org>
Wed, 15 Sep 2010 22:19:51 +0000 (00:19 +0200)
committerGünther Deschner <gd@samba.org>
Wed, 15 Sep 2010 22:20:47 +0000 (00:20 +0200)
Jeremy, please check.

Guenther

source3/smbd/nttrans.c

index 9b3085c327d00108d5bbd389e4b3043fbc4f04a5..beb5b505020c584aafaf1f681d9a2f2eaa99a304 100644 (file)
@@ -2255,7 +2255,10 @@ static void call_nt_transact_ioctl(connection_struct *conn,
                /* unknown 4 bytes: this is not the length of the sid :-(  */
                /*unknown = IVAL(pdata,0);*/
 
-               sid_parse(pdata+4,sid_len,&sid);
+               if (!sid_parse(pdata+4,sid_len,&sid)) {
+                       reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
+                       return;
+               }
                DEBUGADD(10, ("for SID: %s\n", sid_string_dbg(&sid)));
 
                if (!sid_to_uid(&sid, &uid)) {