[SCM] Samba Shared Repository - branch v3-2-test updated - initial-v3-2-unstable-727-gff644cf

Volker Lendecke vl at samba.org
Wed Dec 19 15:55:02 GMT 2007


The branch, v3-2-test has been updated
       via  ff644cfa1b123e9d0f8f4817504e5b209b85dedd (commit)
       via  9ec4f91f35696e5a00e24fe9ae2dd06119482c80 (commit)
      from  93f3a1172af2f1a20f0c4c26ec8be999546d95f8 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test


- Log -----------------------------------------------------------------
commit ff644cfa1b123e9d0f8f4817504e5b209b85dedd
Author: Volker Lendecke <vl at sernet.de>
Date:   Wed Dec 19 16:48:18 2007 +0100

    Some paranoia checks

commit 9ec4f91f35696e5a00e24fe9ae2dd06119482c80
Author: Volker Lendecke <vl at sernet.de>
Date:   Wed Dec 19 16:48:04 2007 +0100

    Zero the tdb key, there might be padding
    
    This leads to uninitialized variable warnings if nmbd is run under valgrind.

-----------------------------------------------------------------------

Summary of changes:
 source/libsmb/unexpected.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/libsmb/unexpected.c b/source/libsmb/unexpected.c
index 92a609c..5fbc33c 100644
--- a/source/libsmb/unexpected.c
+++ b/source/libsmb/unexpected.c
@@ -63,6 +63,8 @@ void unexpected_packet(struct packet_struct *p)
 
 	len = build_packet(&buf[6], sizeof(buf)-6, p) + 6;
 
+	ZERO_STRUCT(key);	/* needed for potential alignment */
+
 	key.packet_type = p->packet_type;
 	key.timestamp = p->timestamp;
 	key.count = count++;
@@ -86,6 +88,10 @@ static int traverse_fn(TDB_CONTEXT *ttdb, TDB_DATA kbuf, TDB_DATA dbuf, void *st
 {
 	struct unexpected_key key;
 
+	if (kbuf.dsize != sizeof(key)) {
+		tdb_delete(ttdb, kbuf);
+	}
+
 	memcpy(&key, kbuf.dptr, sizeof(key));
 
 	if (lastt - key.timestamp > NMBD_UNEXPECTED_TIMEOUT) {
@@ -134,6 +140,10 @@ static int traverse_match(TDB_CONTEXT *ttdb, TDB_DATA kbuf, TDB_DATA dbuf,
 	int port;
 	struct packet_struct *p;
 
+	if (kbuf.dsize != sizeof(key)) {
+		return 0;
+	}
+
 	memcpy(&key, kbuf.dptr, sizeof(key));
 
 	if (key.packet_type != state->match_type) return 0;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list