r16612: Klocwork fix #2011. memleak on error path.
authorJeremy Allison <jra@samba.org>
Wed, 28 Jun 2006 04:51:23 +0000 (04:51 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 16:19:03 +0000 (11:19 -0500)
Jeremy.
(This used to be commit b4e9475d2ac65f72cab0d5c8276da27cf1aeb791)

source3/utils/net_rpc_registry.c

index 10ba28e02396ab8cbbe15b811651178d8ee38a52..1b62adc60feb3189d573fd2abf1a2b141b75fd0b 100644 (file)
@@ -433,7 +433,7 @@ static int rpc_registry_dump( int argc, const char **argv )
 
 static int rpc_registry_copy( int argc, const char **argv )
 {
-       REGF_FILE   *infile, *outfile;
+       REGF_FILE   *infile = NULL, *outfile = NULL;
        REGF_NK_REC *nk;
        int result = 1;
        
@@ -452,7 +452,7 @@ static int rpc_registry_copy( int argc, const char **argv )
        d_printf("Opening %s....", argv[1]);
        if ( !(outfile = regfio_open( argv[1], (O_RDWR|O_CREAT|O_TRUNC), (S_IREAD|S_IWRITE) )) ) {
                d_fprintf(stderr, "Failed to open %s for writing\n", argv[1]);
-               goto out_close_infile;
+               goto out;
        }
        d_printf("ok\n");
        
@@ -460,7 +460,7 @@ static int rpc_registry_copy( int argc, const char **argv )
        
        if ((nk = regfio_rootkey( infile )) == NULL) {
                d_fprintf(stderr, "Could not get rootkey\n");
-               goto out_close_infile;
+               goto out;
        }
        d_printf("RootKey: [%s]\n", nk->keyname);
 
@@ -468,13 +468,18 @@ static int rpc_registry_copy( int argc, const char **argv )
 
        result = 0;
 
+out:
+
        d_printf("Closing %s...", argv[1]);
-       regfio_close( outfile );
+       if (outfile) {
+               regfio_close( outfile );
+       }
        d_printf("ok\n");
 
-out_close_infile:
        d_printf("Closing %s...", argv[0]);
-       regfio_close( infile );
+       if (infile) {
+               regfio_close( infile );
+       }
        d_printf("ok\n");
 
        return( result);