s4-spoolss: fix spoolss server after out,ref count pointer changes.
authorGünther Deschner <gd@samba.org>
Mon, 16 Feb 2009 15:41:48 +0000 (16:41 +0100)
committerGünther Deschner <gd@samba.org>
Tue, 17 Feb 2009 15:15:52 +0000 (16:15 +0100)
Guenther

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

index 073fd9992c45afc4b1adb2460ca23c8c7a28adff..c570b03a35c02b333f3b6b35ca6b1e2cb8b86669 100644 (file)
@@ -260,7 +260,7 @@ static WERROR sptr_EnumPrintServerForms(struct ntptr_GenericHandle *server, TALL
        }
 
        r->out.info     = info;
-       r->out.count    = count;
+       *r->out.count   = count;
        return WERR_OK;
 }
 
@@ -588,7 +588,7 @@ static WERROR sptr_EnumPrinters(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx
        }
 
        r->out.info     = info;
-       r->out.count    = count;
+       *r->out.count   = count;
        return WERR_OK;
 }
 
@@ -646,7 +646,7 @@ static WERROR sptr_EnumPorts(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
        }
 
        r->out.info     = info;
-       r->out.count    = count;
+       *r->out.count   = count;
        return WERR_OK;
 }
 
@@ -693,8 +693,7 @@ static WERROR sptr_EnumMonitors(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx
        }
 
        r->out.info     = info;
-       r->out.count    = count;
-       return WERR_OK;
+       *r->out.count   = count;
        return WERR_OK;
 }
 
index dc611e331ad48e9d14d2dfdcf06b05bcdbde79d3..33c657cc1b5d9467b1e6d4133b0b7668f5f37aa1 100644 (file)
@@ -243,9 +243,9 @@ 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.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);
+       *r->out.count   = SPOOLSS_BUFFER_OK(*r->out.count, 0);
        return SPOOLSS_BUFFER_OK(WERR_OK, WERR_INSUFFICIENT_BUFFER);
 }
 
@@ -379,9 +379,9 @@ 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.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);
+       *r->out.count   = SPOOLSS_BUFFER_OK(*r->out.count, 0);
        return SPOOLSS_BUFFER_OK(WERR_OK, WERR_INSUFFICIENT_BUFFER);
 }
 
@@ -786,9 +786,9 @@ 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.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);
+       *r->out.count   = SPOOLSS_BUFFER_OK(*r->out.count, 0);
        return SPOOLSS_BUFFER_OK(WERR_OK, WERR_INSUFFICIENT_BUFFER);
 }
 
@@ -809,9 +809,9 @@ 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.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);
+       *r->out.count   = SPOOLSS_BUFFER_OK(*r->out.count, 0);
        return SPOOLSS_BUFFER_OK(WERR_OK, WERR_INSUFFICIENT_BUFFER);
 }
 
@@ -832,9 +832,9 @@ 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.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);
+       *r->out.count   = SPOOLSS_BUFFER_OK(*r->out.count, 0);
        return SPOOLSS_BUFFER_OK(WERR_OK, WERR_INSUFFICIENT_BUFFER);
 }