s4-spoolss: fix spoolss server enum calls after pointer changes.
authorGünther Deschner <gd@samba.org>
Mon, 2 Mar 2009 17:02:04 +0000 (18:02 +0100)
committerGünther Deschner <gd@samba.org>
Fri, 6 Mar 2009 13:28:28 +0000 (14:28 +0100)
Guenther

source4/ntptr/simple_ldb/ntptr_simple_ldb.c
source4/rpc_server/spoolss/dcesrv_spoolss.c

index 459babce0ee5d1d344bf70a7b0089c3678a49d9b..aea5d08c3f35f9104840f829d9219e1b782352cd 100644 (file)
@@ -259,7 +259,7 @@ static WERROR sptr_EnumPrintServerForms(struct ntptr_GenericHandle *server, TALL
                return WERR_UNKNOWN_LEVEL;
        }
 
-       r->out.info     = info;
+       *r->out.info    = info;
        *r->out.count   = count;
        return WERR_OK;
 }
@@ -587,7 +587,7 @@ static WERROR sptr_EnumPrinters(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx
                return WERR_UNKNOWN_LEVEL;
        }
 
-       r->out.info     = info;
+       *r->out.info    = info;
        *r->out.count   = count;
        return WERR_OK;
 }
@@ -645,7 +645,7 @@ static WERROR sptr_EnumPorts(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
                return WERR_UNKNOWN_LEVEL;
        }
 
-       r->out.info     = info;
+       *r->out.info    = info;
        *r->out.count   = count;
        return WERR_OK;
 }
@@ -692,7 +692,7 @@ static WERROR sptr_EnumMonitors(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx
                return WERR_UNKNOWN_LEVEL;
        }
 
-       r->out.info     = info;
+       *r->out.info    = info;
        *r->out.count   = count;
        return WERR_OK;
 }
index f1ef2f0acb95f54bb5feaef2954e0355aca001c5..aec7422571ba8438cf22fc5e81286ed60cf2e7f6 100644 (file)
@@ -243,8 +243,8 @@ static WERROR dcesrv_spoolss_EnumPrinters(struct dcesrv_call_state *dce_call, TA
        status = ntptr_EnumPrinters(ntptr, mem_ctx, r);
        W_ERROR_NOT_OK_RETURN(status);
 
-       *r->out.needed  = SPOOLSS_BUFFER_UNION_ARRAY(spoolss_EnumPrinters, ic, r->out.info, r->in.level, *r->out.count);
-       r->out.info     = SPOOLSS_BUFFER_OK(r->out.info, NULL);
+       *r->out.needed  = SPOOLSS_BUFFER_UNION_ARRAY(spoolss_EnumPrinters, ic, *r->out.info, r->in.level, *r->out.count);
+       *r->out.info    = SPOOLSS_BUFFER_OK(*r->out.info, NULL);
        *r->out.count   = SPOOLSS_BUFFER_OK(*r->out.count, 0);
        return SPOOLSS_BUFFER_OK(WERR_OK, WERR_INSUFFICIENT_BUFFER);
 }
@@ -379,8 +379,8 @@ static WERROR dcesrv_spoolss_EnumPrinterDrivers(struct dcesrv_call_state *dce_ca
        status = ntptr_EnumPrinterDrivers(ntptr, mem_ctx, r);
        W_ERROR_NOT_OK_RETURN(status);
 
-       *r->out.needed  = SPOOLSS_BUFFER_UNION_ARRAY(spoolss_EnumPrinterDrivers, ic, r->out.info, r->in.level, *r->out.count);
-       r->out.info     = SPOOLSS_BUFFER_OK(r->out.info, NULL);
+       *r->out.needed  = SPOOLSS_BUFFER_UNION_ARRAY(spoolss_EnumPrinterDrivers, ic, *r->out.info, r->in.level, *r->out.count);
+       *r->out.info    = SPOOLSS_BUFFER_OK(*r->out.info, NULL);
        *r->out.count   = SPOOLSS_BUFFER_OK(*r->out.count, 0);
        return SPOOLSS_BUFFER_OK(WERR_OK, WERR_INSUFFICIENT_BUFFER);
 }
@@ -802,8 +802,8 @@ static WERROR dcesrv_spoolss_EnumForms(struct dcesrv_call_state *dce_call, TALLO
                        return WERR_FOOBAR;
        }
 
-       *r->out.needed  = SPOOLSS_BUFFER_UNION_ARRAY(spoolss_EnumForms, ic, r->out.info, r->in.level, *r->out.count);
-       r->out.info     = SPOOLSS_BUFFER_OK(r->out.info, NULL);
+       *r->out.needed  = SPOOLSS_BUFFER_UNION_ARRAY(spoolss_EnumForms, ic, *r->out.info, r->in.level, *r->out.count);
+       *r->out.info    = SPOOLSS_BUFFER_OK(*r->out.info, NULL);
        *r->out.count   = SPOOLSS_BUFFER_OK(*r->out.count, 0);
        return SPOOLSS_BUFFER_OK(WERR_OK, WERR_INSUFFICIENT_BUFFER);
 }
@@ -825,8 +825,8 @@ static WERROR dcesrv_spoolss_EnumPorts(struct dcesrv_call_state *dce_call, TALLO
        status = ntptr_EnumPorts(ntptr, mem_ctx, r);
        W_ERROR_NOT_OK_RETURN(status);
 
-       *r->out.needed  = SPOOLSS_BUFFER_UNION_ARRAY(spoolss_EnumPorts, ic, r->out.info, r->in.level, *r->out.count);
-       r->out.info     = SPOOLSS_BUFFER_OK(r->out.info, NULL);
+       *r->out.needed  = SPOOLSS_BUFFER_UNION_ARRAY(spoolss_EnumPorts, ic, *r->out.info, r->in.level, *r->out.count);
+       *r->out.info    = SPOOLSS_BUFFER_OK(*r->out.info, NULL);
        *r->out.count   = SPOOLSS_BUFFER_OK(*r->out.count, 0);
        return SPOOLSS_BUFFER_OK(WERR_OK, WERR_INSUFFICIENT_BUFFER);
 }
@@ -848,8 +848,8 @@ static WERROR dcesrv_spoolss_EnumMonitors(struct dcesrv_call_state *dce_call, TA
        status = ntptr_EnumMonitors(ntptr, mem_ctx, r);
        W_ERROR_NOT_OK_RETURN(status);
 
-       *r->out.needed  = SPOOLSS_BUFFER_UNION_ARRAY(spoolss_EnumMonitors, ic, r->out.info, r->in.level, *r->out.count);
-       r->out.info     = SPOOLSS_BUFFER_OK(r->out.info, NULL);
+       *r->out.needed  = SPOOLSS_BUFFER_UNION_ARRAY(spoolss_EnumMonitors, ic, *r->out.info, r->in.level, *r->out.count);
+       *r->out.info    = SPOOLSS_BUFFER_OK(*r->out.info, NULL);
        *r->out.count   = SPOOLSS_BUFFER_OK(*r->out.count, 0);
        return SPOOLSS_BUFFER_OK(WERR_OK, WERR_INSUFFICIENT_BUFFER);
 }