Fix part of bug #3617 from valgrind trace.
authorJeremy Allison <jra@samba.org>
Fri, 29 Feb 2008 13:51:09 +0000 (05:51 -0800)
committerJeremy Allison <jra@samba.org>
Fri, 29 Feb 2008 13:51:09 +0000 (05:51 -0800)
"Invalid read of size 1" errors.
Jeremy.
(This used to be commit d954a4954ba8ed6cb2c6074176a6008cfa398dd7)

source3/nmbd/nmbd_namelistdb.c
source3/nmbd/nmbd_nameregister.c

index f9cbcf4f59a4948b52201e86759c280cbe011a65..6570fd4ec763c5a0f3a1335649cc62a02d235910 100644 (file)
@@ -297,7 +297,6 @@ void standard_success_register(struct subnet_record *subrec,
  ******************************************************************/
 
 void standard_fail_register( struct subnet_record   *subrec,
-                             struct response_record *rrec,
                              struct nmb_name        *nmbname )
 {
        struct name_record *namerec;
index edcf258519bec148919f3aaa708e2d76d32518a9..98f129aa892d872774ddbd528cd57eef7b6041b0 100644 (file)
@@ -152,10 +152,11 @@ static void register_name_response(struct subnet_record *subrec,
                if( rrec->success_fn)
                        (*(register_name_success_function)rrec->success_fn)(subrec, rrec->userdata, answer_name, nb_flags, ttl, register_ip);
        } else {
+               struct nmb_name qname = *question_name;
                if( rrec->fail_fn)
                        (*(register_name_fail_function)rrec->fail_fn)(subrec, rrec, question_name);
                /* Remove the name. */
-               standard_fail_register( subrec, rrec, question_name);
+               standard_fail_register( subrec, &qname);
        }
 
        /* Ensure we don't retry. */
@@ -280,10 +281,11 @@ static void register_name_timeout_response(struct subnet_record *subrec,
                if( rrec->success_fn)
                        (*(register_name_success_function)rrec->success_fn)(subrec, rrec->userdata, question_name, nb_flags, ttl, registered_ip);
        } else {
+               struct nmb_name qname = *question_name;
                if( rrec->fail_fn)
                        (*(register_name_fail_function)rrec->fail_fn)(subrec, rrec, question_name);
                /* Remove the name. */
-               standard_fail_register( subrec, rrec, question_name);
+               standard_fail_register( subrec, &qname);
        }
 
        /* Ensure we don't retry. */