svn commit: samba r22485 - in branches/SAMBA_4_0/source/librpc/rpc:
.
metze at samba.org
metze at samba.org
Mon Apr 23 10:39:21 GMT 2007
Author: metze
Date: 2007-04-23 10:39:20 +0000 (Mon, 23 Apr 2007)
New Revision: 22485
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=22485
Log:
don't crash when the main dcerpc code haven't setup
transport.recv_data yet
also return always a usefull error
metze
Modified:
branches/SAMBA_4_0/source/librpc/rpc/dcerpc_smb.c
branches/SAMBA_4_0/source/librpc/rpc/dcerpc_smb2.c
branches/SAMBA_4_0/source/librpc/rpc/dcerpc_sock.c
Changeset:
Modified: branches/SAMBA_4_0/source/librpc/rpc/dcerpc_smb.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/rpc/dcerpc_smb.c 2007-04-23 10:04:15 UTC (rev 22484)
+++ branches/SAMBA_4_0/source/librpc/rpc/dcerpc_smb.c 2007-04-23 10:39:20 UTC (rev 22485)
@@ -39,7 +39,17 @@
*/
static void pipe_dead(struct dcerpc_connection *c, NTSTATUS status)
{
- c->transport.recv_data(c, NULL, status);
+ if (NT_STATUS_EQUAL(NT_STATUS_UNSUCCESSFUL, status)) {
+ status = NT_STATUS_UNEXPECTED_NETWORK_ERROR;
+ }
+
+ if (NT_STATUS_EQUAL(NT_STATUS_OK, status)) {
+ status = NT_STATUS_END_OF_FILE;
+ }
+
+ if (c->transport.recv_data) {
+ c->transport.recv_data(c, NULL, status);
+ }
}
Modified: branches/SAMBA_4_0/source/librpc/rpc/dcerpc_smb2.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/rpc/dcerpc_smb2.c 2007-04-23 10:04:15 UTC (rev 22484)
+++ branches/SAMBA_4_0/source/librpc/rpc/dcerpc_smb2.c 2007-04-23 10:39:20 UTC (rev 22485)
@@ -41,7 +41,17 @@
*/
static void pipe_dead(struct dcerpc_connection *c, NTSTATUS status)
{
- c->transport.recv_data(c, NULL, status);
+ if (NT_STATUS_EQUAL(NT_STATUS_UNSUCCESSFUL, status)) {
+ status = NT_STATUS_UNEXPECTED_NETWORK_ERROR;
+ }
+
+ if (NT_STATUS_EQUAL(NT_STATUS_OK, status)) {
+ status = NT_STATUS_END_OF_FILE;
+ }
+
+ if (c->transport.recv_data) {
+ c->transport.recv_data(c, NULL, status);
+ }
}
Modified: branches/SAMBA_4_0/source/librpc/rpc/dcerpc_sock.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/rpc/dcerpc_sock.c 2007-04-23 10:04:15 UTC (rev 22484)
+++ branches/SAMBA_4_0/source/librpc/rpc/dcerpc_sock.c 2007-04-23 10:39:20 UTC (rev 22485)
@@ -76,7 +76,7 @@
status = NT_STATUS_END_OF_FILE;
}
- if (!NT_STATUS_IS_OK(status)) {
+ if (p->transport.recv_data) {
p->transport.recv_data(p, NULL, status);
}
}
More information about the samba-cvs
mailing list