svn commit: samba r5552 - in branches/SAMBA_4_0/source/torture/rpc:
.
tpot at samba.org
tpot at samba.org
Fri Feb 25 05:39:02 GMT 2005
Author: tpot
Date: 2005-02-25 05:39:01 +0000 (Fri, 25 Feb 2005)
New Revision: 5552
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=5552
Log:
Don't try to read the value of r.out.result when the dcerpc client
function returns non-OK. If a non-OK status is returned then some or
all or r.out is likely to be uninitialised.
Modified:
branches/SAMBA_4_0/source/torture/rpc/spoolss.c
Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/spoolss.c
===================================================================
--- branches/SAMBA_4_0/source/torture/rpc/spoolss.c 2005-02-25 05:25:17 UTC (rev 5551)
+++ branches/SAMBA_4_0/source/torture/rpc/spoolss.c 2005-02-25 05:39:01 UTC (rev 5552)
@@ -55,13 +55,18 @@
status = dcerpc_spoolss_GetPrinter(p, mem_ctx, &r);
}
- if (!NT_STATUS_IS_OK(status) ||
- !W_ERROR_IS_OK(r.out.result)) {
- printf("GetPrinter failed - %s/%s\n",
- nt_errstr(status), win_errstr(r.out.result));
+ if (!NT_STATUS_IS_OK(status)) {
+ printf("GetPrinter failed - %s\n", nt_errstr(status));
ret = False;
continue;
}
+
+ if (!W_ERROR_IS_OK(r.out.result)) {
+ printf("GetPrinter failed - %s\n",
+ win_errstr(r.out.result));
+ ret = False;
+ continue;
+ }
}
return ret;
@@ -174,12 +179,16 @@
}
}
- if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
- printf("EnumForms failed - %s/%s\n",
- nt_errstr(status), win_errstr(r.out.result));
+ if (!NT_STATUS_IS_OK(status)) {
+ printf("EnumForms failed - %s\n", nt_errstr(status));
return False;
}
+ if (!W_ERROR_IS_OK(r.out.result)) {
+ printf("EnumForms failed - %s\n", win_errstr(r.out.result));
+ return False;
+ }
+
return True;
}
@@ -195,12 +204,16 @@
status = dcerpc_spoolss_DeleteForm(p, mem_ctx, &r);
- if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
- printf("DeleteForm failed - %s/%s\n",
- nt_errstr(status), win_errstr(r.out.result));
+ if (!NT_STATUS_IS_OK(status)) {
+ printf("DeleteForm failed - %s\n", nt_errstr(status));
return False;
}
+ if (!W_ERROR_IS_OK(r.out.result)) {
+ printf("DeleteForm failed - %s\n", win_errstr(r.out.result));
+ return False;
+ }
+
return True;
}
@@ -248,12 +261,18 @@
status = dcerpc_spoolss_SetForm(p, mem_ctx, &sf);
- if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
- printf("SetForm failed - %s/%s\n",
- nt_errstr(status), win_errstr(r.out.result));
+ if (!NT_STATUS_IS_OK(status)) {
+ printf("SetForm failed - %s\n", nt_errstr(status));
ret = False;
- /* Fall through to delete */
+ goto done;
}
+
+ if (!W_ERROR_IS_OK(r.out.result)) {
+ printf("SetForm failed - %s\n",
+ win_errstr(r.out.result));
+ ret = False;
+ goto done;
+ }
}
done:
@@ -454,11 +473,17 @@
status = dcerpc_spoolss_GetPrinterData(p, mem_ctx, &r);
- if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
- printf("GetPrinterData failed - %s/%s\n",
- nt_errstr(status), win_errstr(r.out.result));
+ if (!NT_STATUS_IS_OK(status)) {
+ printf("GetPrinterData failed - %s\n",
+ nt_errstr(status));
return False;
}
+
+ if (!W_ERROR_IS_OK(r.out.result)) {
+ printf("GetPrinterData failed - %s\n",
+ win_errstr(r.out.result));
+ return False;
+ }
}
return True;
@@ -496,11 +521,17 @@
status = dcerpc_spoolss_GetPrinterDataEx(p, mem_ctx, &r);
- if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
- printf("GetPrinterDataEx failed - %s/%s\n",
- nt_errstr(status), win_errstr(r.out.result));
+ if (!NT_STATUS_IS_OK(status)) {
+ printf("GetPrinterDataEx failed - %s\n",
+ nt_errstr(status));
return False;
}
+
+ if (!W_ERROR_IS_OK(r.out.result)) {
+ printf("GetPrinterDataEx failed - %s\n",
+ win_errstr(r.out.result));
+ return False;
+ }
}
return True;
@@ -743,12 +774,17 @@
printf("\nTesting OpenPrinter(%s)\n", r.in.printername);
status = dcerpc_spoolss_OpenPrinter(p, mem_ctx, &r);
- if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
- printf("OpenPrinter failed - %s/%s\n",
- nt_errstr(status), win_errstr(r.out.result));
+
+ if (!NT_STATUS_IS_OK(status)) {
+ printf("OpenPrinter failed - %s\n", nt_errstr(status));
return False;
}
+ if (!W_ERROR_IS_OK(r.out.result)) {
+ printf("OpenPrinter failed - %s\n", win_errstr(r.out.result));
+ return False;
+ }
+
if (!test_GetPrinter(p, mem_ctx, &handle)) {
ret = False;
}
@@ -893,13 +929,18 @@
status = dcerpc_spoolss_EnumPrinters(p, mem_ctx, &r);
}
- if (!NT_STATUS_IS_OK(status) ||
- !W_ERROR_IS_OK(r.out.result)) {
- printf("EnumPrinters failed - %s/%s\n",
- nt_errstr(status), win_errstr(r.out.result));
+ if (!NT_STATUS_IS_OK(status)) {
+ printf("EnumPrinters failed - %s\n",
+ nt_errstr(status));
continue;
}
+ if (!W_ERROR_IS_OK(r.out.result)) {
+ printf("EnumPrinters failed - %s\n",
+ win_errstr(r.out.result));
+ continue;
+ }
+
if (!r.out.info) {
printf("No printers returned");
continue;
@@ -957,13 +998,18 @@
status = dcerpc_spoolss_GetPrinterDriver2(p, mem_ctx, &r);
}
- if (!NT_STATUS_IS_OK(status) ||
- !W_ERROR_IS_OK(r.out.result)) {
- printf("GetPrinterDriver2 failed - %s/%s\n",
- nt_errstr(status), win_errstr(r.out.result));
+ if (!NT_STATUS_IS_OK(status)) {
+ printf("GetPrinterDriver2 failed - %s\n",
+ nt_errstr(status));
return False;
}
+ if (!W_ERROR_IS_OK(r.out.result)) {
+ printf("GetPrinterDriver2 failed - %s\n",
+ win_errstr(r.out.result));
+ return False;
+ }
+
return True;
}
#endif
@@ -1007,14 +1053,20 @@
status = dcerpc_spoolss_EnumPrinterDrivers(p, mem_ctx, &r);
}
- if (!NT_STATUS_IS_OK(status) ||
- !W_ERROR_IS_OK(r.out.result)) {
- printf("EnumPrinterDrivers failed - %s/%s\n",
- nt_errstr(status), win_errstr(r.out.result));
+ if (!NT_STATUS_IS_OK(status)) {
+ printf("EnumPrinterDrivers failed - %s\n",
+ nt_errstr(status));
ret = False;
break;
}
+ if (!W_ERROR_IS_OK(r.out.result)) {
+ printf("EnumPrinterDrivers failed - %s\n",
+ win_errstr(r.out.result));
+ ret = False;
+ break;
+ }
+
if (!r.out.info) {
printf("No printer drivers returned");
break;
More information about the samba-cvs
mailing list