diff options
author | Jeremy Allison <jra@samba.org> | 2002-12-19 22:14:40 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2002-12-19 22:14:40 +0000 |
commit | 4bc49cc943504d1a9a73894f6810bc755ee6e324 (patch) | |
tree | a4882b98439ce99389ff24bebb87e5b0bb634bc0 /source | |
parent | 17f685fdbf5d36f82e3da0a09457f5e248b3f109 (diff) | |
download | samba-4bc49cc943504d1a9a73894f6810bc755ee6e324.tar.gz samba-4bc49cc943504d1a9a73894f6810bc755ee6e324.tar.xz samba-4bc49cc943504d1a9a73894f6810bc755ee6e324.zip |
Protect nmbd against malformed reply packets. Some reports on the lists showing
these.
Jeremy.
Diffstat (limited to 'source')
-rw-r--r-- | source/nmbd/nmbd_namequery.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/source/nmbd/nmbd_namequery.c b/source/nmbd/nmbd_namequery.c index 7a820a71482..8995e9ac522 100644 --- a/source/nmbd/nmbd_namequery.c +++ b/source/nmbd/nmbd_namequery.c @@ -81,6 +81,14 @@ static void query_name_response( struct subnet_record *subrec, } else { + if (!nmb->answers) + { + dbgtext( "query_name_response: On subnet %s ", subrec->subnet_name ); + dbgtext( "IP %s ", inet_ntoa(p->ip) ); + dbgtext( "returned a success response with no answer\n" ); + return; + } + success = True; putip((char *)&answer_ip,&nmb->answers->rdata[2]); @@ -102,7 +110,8 @@ static void query_name_response( struct subnet_record *subrec, { if( DEBUGLVL( 0 ) ) { - putip( (char *)&answer_ip, &nmb->answers->rdata[2] ); + if (nmb->answers) + putip( (char *)&answer_ip, &nmb->answers->rdata[2] ); dbgtext( "query_name_response: " ); dbgtext( "Multiple (%d) responses ", rrec->num_msgs ); dbgtext( "received for a query on subnet %s ", subrec->subnet_name ); |