Author: jmcd
Date: 2006-03-10 14:28:51 +0000 (Fri, 10 Mar 2006)
New Revision: 14156

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=14156

Log:
Fix coverity #114: free storage alloc'ed by sstring_sub()

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 14:20:09 UTC 
(rev 14155)
+++ branches/SAMBA_3_0/source/utils/net_rpc_samsync.c   2006-03-10 14:28:51 UTC 
(rev 14156)
@@ -1455,7 +1455,7 @@
        fstring hex_nt_passwd, hex_lm_passwd;
        fstring description, fullname, sambaSID;
        uchar lm_passwd[16], nt_passwd[16];
-       char *flags;
+       char *flags, *user_rdn;
        const char* nopasswd = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        static uchar zero_buf[16];
        uint32 rid = 0, group_rid = 0, gidNumber = 0;
@@ -1551,10 +1551,11 @@
                                     NEW_PW_FORMAT_SPACE_PADDED_LEN);
 
        /* Add the user to the temporary add ldif file */
-       fprintf(add_fd, "# %s, %s, %s\n", username, 
-               sstring_sub(lp_ldap_user_suffix(), '=', ','), suffix);
-       fprintf(add_fd, "dn: uid=%s,ou=%s,%s\n", username, 
-               sstring_sub(lp_ldap_user_suffix(), '=', ','), suffix);
+       /* this isn't quite right...we can't assume there's just OU=. jmcd */
+       user_rdn = sstring_sub(lp_ldap_user_suffix(), '=', ',');
+       fprintf(add_fd, "# %s, %s, %s\n", username, user_rdn, suffix);
+       fprintf(add_fd, "dn: uid=%s,ou=%s,%s\n", username, user_rdn, suffix);
+       SAFE_FREE(user_rdn);
        fprintf(add_fd, "ObjectClass: top\n");
        fprintf(add_fd, "objectClass: inetOrgPerson\n");
        fprintf(add_fd, "objectClass: posixAccount\n");

Modified: trunk/source/utils/net_rpc_samsync.c
===================================================================
--- trunk/source/utils/net_rpc_samsync.c        2006-03-10 14:20:09 UTC (rev 
14155)
+++ trunk/source/utils/net_rpc_samsync.c        2006-03-10 14:28:51 UTC (rev 
14156)
@@ -1455,7 +1455,7 @@
        fstring hex_nt_passwd, hex_lm_passwd;
        fstring description, fullname, sambaSID;
        uchar lm_passwd[16], nt_passwd[16];
-       char *flags;
+       char *flags, *user_rdn;
        const char* nopasswd = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        static uchar zero_buf[16];
        uint32 rid = 0, group_rid = 0, gidNumber = 0;
@@ -1551,10 +1551,11 @@
                                     NEW_PW_FORMAT_SPACE_PADDED_LEN);
 
        /* Add the user to the temporary add ldif file */
-       fprintf(add_fd, "# %s, %s, %s\n", username, 
-               sstring_sub(lp_ldap_user_suffix(), '=', ','), suffix);
-       fprintf(add_fd, "dn: uid=%s,ou=%s,%s\n", username, 
-               sstring_sub(lp_ldap_user_suffix(), '=', ','), suffix);
+       /* this isn't quite right...we can't assume there's just OU=. jmcd */
+       user_rdn = sstring_sub(lp_ldap_user_suffix(), '=', ',');
+       fprintf(add_fd, "# %s, %s, %s\n", username, user_rdn, suffix);
+       fprintf(add_fd, "dn: uid=%s,ou=%s,%s\n", username, user_rdn, suffix);
+       SAFE_FREE(user_rdn);
        fprintf(add_fd, "ObjectClass: top\n");
        fprintf(add_fd, "objectClass: inetOrgPerson\n");
        fprintf(add_fd, "objectClass: posixAccount\n");

Reply via email to