s3-spoolss: in spoolss_EnumPrinters r->in.server is a *unique* pointer!
authorGünther Deschner <gd@samba.org>
Thu, 18 Feb 2010 01:03:53 +0000 (02:03 +0100)
committerKarolin Seeger <kseeger@samba.org>
Tue, 11 May 2010 12:49:35 +0000 (14:49 +0200)
Guenther
(cherry picked from commit 8ce66fba03f782c0b9948a9835bb488cfa74acf9)
(cherry picked from commit cb6fcb9b16b36fcdc68bef382dbd7ecf89521d4e)

source3/rpc_server/srv_spoolss_nt.c

index b1343861567a29b0202ba1390839c14a222121ab..2dac5f6c4ab7f6eb5bd4f9aa73556ef7157e37d0 100644 (file)
@@ -4460,7 +4460,7 @@ static WERROR enumprinters_level5(TALLOC_CTX *mem_ctx,
 WERROR _spoolss_EnumPrinters(pipes_struct *p,
                             struct spoolss_EnumPrinters *r)
 {
-       const char *name;
+       const char *name = NULL;
        WERROR result;
 
        /* that's an [in out] buffer */
@@ -4488,8 +4488,10 @@ WERROR _spoolss_EnumPrinters(pipes_struct *p,
         * Level 5: same as Level 2
         */
 
-       name = talloc_strdup_upper(p->mem_ctx, r->in.server);
-       W_ERROR_HAVE_NO_MEMORY(name);
+       if (name) {
+               name = talloc_strdup_upper(p->mem_ctx, r->in.server);
+               W_ERROR_HAVE_NO_MEMORY(name);
+       }
 
        switch (r->in.level) {
        case 0: