Author: jmcd Date: 2006-03-10 13:33:02 +0000 (Fri, 10 Mar 2006) New Revision: 14147
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=14147 Log: Fix coverity #119. alloc'ed memory returned not saved, so not freed. Need to go back and correct the assumption that an "ldap xxx suffix" parm must have an OU. Modified: branches/SAMBA_3_0/source/utils/net_rpc_samsync.c trunk/source/utils/net_rpc_samsync.c Changeset: Modified: branches/SAMBA_3_0/source/utils/net_rpc_samsync.c =================================================================== --- branches/SAMBA_3_0/source/utils/net_rpc_samsync.c 2006-03-10 13:14:01 UTC (rev 14146) +++ branches/SAMBA_3_0/source/utils/net_rpc_samsync.c 2006-03-10 13:33:02 UTC (rev 14147) @@ -1076,11 +1076,15 @@ if (machine_suffix && *machine_suffix && strcmp(machine_suffix, user_suffix) && strcmp(machine_suffix, suffix)) { - fprintf(add_fd, "# %s\n", lp_ldap_machine_suffix()); - fprintf(add_fd, "dn: %s\n", lp_ldap_machine_suffix()); + char *machine_ou = NULL; + fprintf(add_fd, "# %s\n", machine_suffix); + fprintf(add_fd, "dn: %s\n", machine_suffix); fprintf(add_fd, "objectClass: organizationalUnit\n"); - fprintf(add_fd, "ou: %s\n", - sstring_sub(lp_ldap_machine_suffix(), '=', ',')); + /* this isn't totally correct as it assumes that + there _must_ be an ou. just fixing memleak now. jmcd */ + machine_ou = sstring_sub(lp_ldap_machine_suffix(), '=', ','); + fprintf(add_fd, "ou: %s\n", machine_ou); + SAFE_FREE(machine_ou); fprintf(add_fd, "\n"); fflush(add_fd); } Modified: trunk/source/utils/net_rpc_samsync.c =================================================================== --- trunk/source/utils/net_rpc_samsync.c 2006-03-10 13:14:01 UTC (rev 14146) +++ trunk/source/utils/net_rpc_samsync.c 2006-03-10 13:33:02 UTC (rev 14147) @@ -1076,11 +1076,15 @@ if (machine_suffix && *machine_suffix && strcmp(machine_suffix, user_suffix) && strcmp(machine_suffix, suffix)) { - fprintf(add_fd, "# %s\n", lp_ldap_machine_suffix()); - fprintf(add_fd, "dn: %s\n", lp_ldap_machine_suffix()); + char *machine_ou = NULL; + fprintf(add_fd, "# %s\n", machine_suffix); + fprintf(add_fd, "dn: %s\n", machine_suffix); fprintf(add_fd, "objectClass: organizationalUnit\n"); - fprintf(add_fd, "ou: %s\n", - sstring_sub(lp_ldap_machine_suffix(), '=', ',')); + /* this isn't totally correct as it assumes that + there _must_ be an ou. just fixing memleak now. jmcd */ + machine_ou = sstring_sub(lp_ldap_machine_suffix(), '=', ','); + fprintf(add_fd, "ou: %s\n", machine_ou); + SAFE_FREE(machine_ou); fprintf(add_fd, "\n"); fflush(add_fd); }