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>
Mon, 17 May 2010 07:50:17 +0000 (09:50 +0200)
Guenther
(cherry picked from commit 8ce66fba03f782c0b9948a9835bb488cfa74acf9)
(cherry picked from commit cb6fcb9b16b36fcdc68bef382dbd7ecf89521d4e)

source3/rpc_server/srv_spoolss_nt.c

index 92f37e505ff090a1acd14b0aed79bf529ac5c071..73675367127cd0806a0e05356f86fade64828cec 100644 (file)
@@ -4275,7 +4275,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 */
@@ -4303,8 +4303,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: