Fix segfault in _srv_net_file_enum.
authorGünther Deschner <gd@samba.org>
Thu, 28 Feb 2008 09:14:26 +0000 (10:14 +0100)
committerGünther Deschner <gd@samba.org>
Thu, 28 Feb 2008 09:15:31 +0000 (10:15 +0100)
Guenther

source/rpc_server/srv_srvsvc_nt.c

index f0680a89e5e8af17000a1d6510ac4c49fb71a17f..37bd204f7571a4f6a4c0ebf6cc2164f2d78fe99b 100644 (file)
@@ -1216,17 +1216,20 @@ done:
 
 WERROR _srv_net_file_enum(pipes_struct *p, SRV_Q_NET_FILE_ENUM *q_u, SRV_R_NET_FILE_ENUM *r_u)
 {
+       const char *username = NULL;
+
        switch ( q_u->level ) {
-       case 3: {
-               char *username;
-               if (!(username = rpcstr_pull_unistr2_talloc(
-                             p->mem_ctx, q_u->username))) {
-                       return WERR_NOMEM;
+       case 3:
+               if (q_u->username) {
+                       username = rpcstr_pull_unistr2_talloc(
+                               p->mem_ctx, q_u->username);
+                       if (!username) {
+                               return WERR_NOMEM;
+                       }
                }
 
                return net_file_enum_3(username, r_u,
                                       get_enum_hnd(&q_u->enum_hnd));
-       }
        default:
                return WERR_UNKNOWN_LEVEL;
        }