s3: Fix a segfault in the printer code using create_conn_struct
authorVolker Lendecke <vl@samba.org>
Mon, 30 Aug 2010 13:22:29 +0000 (15:22 +0200)
committerVolker Lendecke <vl@samba.org>
Mon, 30 Aug 2010 21:06:32 +0000 (23:06 +0200)
source3/smbd/conn.c

index eaaddabc841b0315828ecc8359dea589e3f425f2..fffb5bf9de7210c004af4d2d2ba68f5283eb7e1a 100644 (file)
@@ -321,7 +321,13 @@ void conn_free(connection_struct *conn)
 
        DLIST_REMOVE(conn->sconn->smb1.tcons.Connections, conn);
 
-       bitmap_clear(conn->sconn->smb1.tcons.bmap, conn->cnum);
+       if (conn->sconn->smb1.tcons.bmap != NULL) {
+               /*
+                * Can be NULL for fake connections created by
+                * create_conn_struct()
+                */
+               bitmap_clear(conn->sconn->smb1.tcons.bmap, conn->cnum);
+       }
 
        SMB_ASSERT(conn->sconn->smb1.tcons.num_open > 0);
        conn->sconn->smb1.tcons.num_open--;