The branch, v3-2-test has been updated
       via  737bb950d50ac6c5d4f99279bf535ae3a9963b2f (commit)
       via  47dd0700b4320bf5ac9a80e71ae82d82d4554e6a (commit)
      from  f7d2f692994918037e603ef95dd097b03d2c5456 (commit)

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


- Log -----------------------------------------------------------------
commit 737bb950d50ac6c5d4f99279bf535ae3a9963b2f
Author: Tim Potter <[EMAIL PROTECTED]>
Date:   Mon Feb 18 20:37:33 2008 +1100

    Fix double free bugs after calling regfio_close()

commit 47dd0700b4320bf5ac9a80e71ae82d82d4554e6a
Author: Tim Potter <[EMAIL PROTECTED]>
Date:   Mon Feb 18 21:00:51 2008 +1100

    Fix memory leaks on error path

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

Summary of changes:
 source/libsmb/clifile.c  |    9 ++++++++-
 source/registry/regfio.c |    4 ----
 2 files changed, 8 insertions(+), 5 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/libsmb/clifile.c b/source/libsmb/clifile.c
index 9b4c380..10c35a3 100644
--- a/source/libsmb/clifile.c
+++ b/source/libsmb/clifile.c
@@ -38,8 +38,15 @@ static bool cli_link_internal(struct cli_state *cli, const 
char *oldname, const
        size_t newlen = 2*(strlen(newname)+1);
 
        param = SMB_MALLOC_ARRAY(char, 6+newlen+2);
+
+       if (!param) {
+               return false;
+       }
+
        data = SMB_MALLOC_ARRAY(char, oldlen+2);
-       if (!param || !data) {
+
+       if (!data) {
+               SAFE_FREE(param);
                return false;
        }
 
diff --git a/source/registry/regfio.c b/source/registry/regfio.c
index 3740ff0..1c3aad7 100644
--- a/source/registry/regfio.c
+++ b/source/registry/regfio.c
@@ -1171,7 +1171,6 @@ out:
        
        if ( !(rb->mem_ctx = talloc_init( "read_regf_block" )) ) {
                regfio_close( rb );
-               SAFE_FREE(rb);
                return NULL;
        }
 
@@ -1182,7 +1181,6 @@ out:
        if ( (rb->fd = open(filename, flags, mode)) == -1 ) {
                DEBUG(0,("regfio_open: failure to open %s (%s)\n", filename, 
strerror(errno)));
                regfio_close( rb );
-               SAFE_FREE(rb);
                return NULL;
        }
        
@@ -1192,7 +1190,6 @@ out:
                if ( !init_regf_block( rb ) ) {
                        DEBUG(0,("regfio_open: Failed to read initial REGF 
block\n"));
                        regfio_close( rb );
-                       SAFE_FREE(rb);
                        return NULL;
                }
                
@@ -1205,7 +1202,6 @@ out:
        if ( !read_regf_block( rb ) ) {
                DEBUG(0,("regfio_open: Failed to read initial REGF block\n"));
                regfio_close( rb );
-               SAFE_FREE(rb);
                return NULL;
        }
        


-- 
Samba Shared Repository

Reply via email to