r23877: Fix two segfaults in (very unlikely) error paths, found by the IBM
authorVolker Lendecke <vlendec@samba.org>
Sun, 15 Jul 2007 09:37:36 +0000 (09:37 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:28:37 +0000 (12:28 -0500)
checker.

source/smbd/trans2.c

index 1659c8fcbdb59162636109c609a3d7e80644ecaf..080eb36b4203102cf73b16be3184431afb38807c 100644 (file)
@@ -2998,6 +2998,7 @@ static BOOL marshall_posix_acl(connection_struct *conn, char *pdata, SMB_STRUCT_
                                        uid_t *puid = (uid_t *)SMB_VFS_SYS_ACL_GET_QUALIFIER(conn, entry);
                                        if (!puid) {
                                                DEBUG(0,("marshall_posix_acl: SMB_VFS_SYS_ACL_GET_QUALIFIER failed.\n"));
+                                               return False;
                                        }
                                        own_grp = (unsigned int)*puid;
                                        SMB_VFS_SYS_ACL_FREE_QUALIFIER(conn, (void *)puid,tagtype);
@@ -3017,6 +3018,7 @@ static BOOL marshall_posix_acl(connection_struct *conn, char *pdata, SMB_STRUCT_
                                        gid_t *pgid= (gid_t *)SMB_VFS_SYS_ACL_GET_QUALIFIER(conn, entry);
                                        if (!pgid) {
                                                DEBUG(0,("marshall_posix_acl: SMB_VFS_SYS_ACL_GET_QUALIFIER failed.\n"));
+                                               return False;
                                        }
                                        own_grp = (unsigned int)*pgid;
                                        SMB_VFS_SYS_ACL_FREE_QUALIFIER(conn, (void *)pgid,tagtype);