svn commit: samba r5109 - in branches/SAMBA_4_0/source: librpc/ndr nbt_server

tridge at samba.org tridge at samba.org
Sun Jan 30 10:41:15 GMT 2005


Author: tridge
Date: 2005-01-30 10:41:15 +0000 (Sun, 30 Jan 2005)
New Revision: 5109

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=5109

Log:
- fixed handling of zero-length subcontexts in the ndr library

- added error checking on socket startup in nbtd

Modified:
   branches/SAMBA_4_0/source/librpc/ndr/ndr.c
   branches/SAMBA_4_0/source/nbt_server/nbt_server.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/ndr/ndr.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/ndr/ndr.c	2005-01-30 10:24:36 UTC (rev 5108)
+++ branches/SAMBA_4_0/source/librpc/ndr/ndr.c	2005-01-30 10:41:15 UTC (rev 5109)
@@ -441,7 +441,6 @@
 	switch (sub_size) {
 	case 0: {
 		uint32_t size = ndr->data_size - ndr->offset;
-		if (size == 0) return NT_STATUS_OK;
 		NDR_CHECK(ndr_pull_subcontext(ndr, ndr2, size));
 		break;
 	}
@@ -449,7 +448,6 @@
 	case 2: {
 		uint16_t size;
 		NDR_CHECK(ndr_pull_uint16(ndr, &size));
-		if (size == 0) return NT_STATUS_OK;
 		NDR_CHECK(ndr_pull_subcontext(ndr, ndr2, size));
 		break;
 	}
@@ -457,7 +455,6 @@
 	case 4: {
 		uint32_t size;
 		NDR_CHECK(ndr_pull_uint32(ndr, &size));
-		if (size == 0) return NT_STATUS_OK;
 		NDR_CHECK(ndr_pull_subcontext(ndr, ndr2, size));
 		break;
 	}

Modified: branches/SAMBA_4_0/source/nbt_server/nbt_server.c
===================================================================
--- branches/SAMBA_4_0/source/nbt_server/nbt_server.c	2005-01-30 10:24:36 UTC (rev 5108)
+++ branches/SAMBA_4_0/source/nbt_server/nbt_server.c	2005-01-30 10:41:15 UTC (rev 5109)
@@ -49,6 +49,7 @@
 {
 	struct nbt_server *nbtsrv;
 	struct nbt_interface *iface;
+	NTSTATUS status;
 
 	nbtsrv = talloc(task, struct nbt_server);
 	if (nbtsrv == NULL) {
@@ -59,8 +60,14 @@
 	nbtsrv->task = task;
 	nbtsrv->interfaces = NULL;
 
-	nbt_startup_interfaces(nbtsrv);
+	/* start listening on the configured network interfaces */
+	status = nbt_startup_interfaces(nbtsrv);
+	if (!NT_STATUS_IS_OK(status)) {
+		task_terminate(task, "nbtd failed to setup interfaces");
+		return;
+	}
 
+	/* setup the incoming request handler for all our interfaces */
 	for (iface=nbtsrv->interfaces;iface;iface=iface->next) {
 		nbt_set_incoming_handler(iface->nbtsock, nbt_request_handler, iface);
 	}



More information about the samba-cvs mailing list