]> git.sur5r.net Git - openldap/commitdiff
Apply Hallvard's memory leak plugs...
authorKurt Zeilenga <kurt@openldap.org>
Fri, 20 Aug 1999 00:55:22 +0000 (00:55 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Fri, 20 Aug 1999 00:55:22 +0000 (00:55 +0000)
clients/tools/ldapmodify.c

index e58dc3c695d030d9b9eddbbc8c37726e71000d3d..729a6d1cd8db56dd81a644ca2da661c62c887a63 100644 (file)
@@ -409,7 +409,7 @@ process_ldif_rec( char *rbuf, int count )
                }
                expect_ct = 1;
            }
-           continue;   /* skip all lines until we see "dn:" */
+           goto end_line;      /* skip all lines until we see "dn:" */
        }
 
        if ( expect_ct ) {
@@ -419,6 +419,8 @@ process_ldif_rec( char *rbuf, int count )
                        "\t(LDAP host/port does not match replica: lines)\n",
                        prog, dn );
                free( dn );
+               ber_memfree( type );
+               ber_memfree( value );
                return( 0 );
            }
 
@@ -441,7 +443,7 @@ process_ldif_rec( char *rbuf, int count )
                            prog, T_CHANGETYPESTR, value, linenum, dn );
                    rc = LDAP_PARAM_ERROR;
                }
-               continue;
+               goto end_line;
            } else if ( new ) {         /*  missing changetype => add */
                new_entry = 1;
                modop = LDAP_MOD_ADD;
@@ -455,14 +457,14 @@ process_ldif_rec( char *rbuf, int count )
            expect_sep = 1;
            if ( strcasecmp( type, T_MODOPADDSTR ) == 0 ) {
                modop = LDAP_MOD_ADD;
-               continue;
+               goto end_line;
            } else if ( strcasecmp( type, T_MODOPREPLACESTR ) == 0 ) {
                modop = LDAP_MOD_REPLACE;
-               continue;
+               goto end_line;
            } else if ( strcasecmp( type, T_MODOPDELETESTR ) == 0 ) {
                modop = LDAP_MOD_DELETE;
                addmodifyop( &pmods, modop, value, NULL, 0 );
-               continue;
+               goto end_line;
            } else {    /* no modify op:  use default */
                modop = replace ? LDAP_MOD_REPLACE : LDAP_MOD_ADD;
            }
@@ -512,6 +514,10 @@ process_ldif_rec( char *rbuf, int count )
        } else {
            addmodifyop( &pmods, modop, type, value, vlen );
        }
+
+end_line:
+       ber_memfree( type );
+       ber_memfree( value );
     }
 
        if( linenum == 0 ) {