diff options
-rw-r--r-- | source3/utils/net_rpc_samsync.c | 118 |
1 files changed, 72 insertions, 46 deletions
diff --git a/source3/utils/net_rpc_samsync.c b/source3/utils/net_rpc_samsync.c index e5f212af56..31d989ad37 100644 --- a/source3/utils/net_rpc_samsync.c +++ b/source3/utils/net_rpc_samsync.c @@ -1277,67 +1277,91 @@ static NTSTATUS map_populate_groups(GROUPMAP *groupmap, ACCOUNTMAP *accountmap, /* Map the groups created by populate_ldap_for_ldif */ groupmap[0].rid = 512; groupmap[0].gidNumber = 512; - pstr_sprintf(groupmap[0].sambaSID, "%s-512", sid); - pstr_sprintf(groupmap[0].group_dn, "cn=Domain Admins,ou=%s,%s", - group_attr, suffix); + snprintf(groupmap[0].sambaSID, sizeof(groupmap[0].sambaSID), + "%s-512", sid); + snprintf(groupmap[0].group_dn, sizeof(groupmap[0].group_dn), + "cn=Domain Admins,ou=%s,%s", + group_attr, suffix); accountmap[0].rid = 512; - pstr_sprintf(accountmap[0].cn, "%s", "Domain Admins"); + snprintf(accountmap[0].cn, sizeof(accountmap[0].cn), + "%s", "Domain Admins"); groupmap[1].rid = 513; groupmap[1].gidNumber = 513; - pstr_sprintf(groupmap[1].sambaSID, "%s-513", sid); - pstr_sprintf(groupmap[1].group_dn, "cn=Domain Users,ou=%s,%s", - group_attr, suffix); + snprintf(groupmap[1].sambaSID, sizeof(groupmap[1].sambaSID), + "%s-513", sid); + snprintf(groupmap[1].group_dn, sizeof(groupmap[1].group_dn), + "cn=Domain Users,ou=%s,%s", + group_attr, suffix); accountmap[1].rid = 513; - pstr_sprintf(accountmap[1].cn, "%s", "Domain Users"); + snprintf(accountmap[1].cn, sizeof(accountmap[1].cn), + "%s", "Domain Users"); groupmap[2].rid = 514; groupmap[2].gidNumber = 514; - pstr_sprintf(groupmap[2].sambaSID, "%s-514", sid); - pstr_sprintf(groupmap[2].group_dn, "cn=Domain Guests,ou=%s,%s", - group_attr, suffix); + snprintf(groupmap[2].sambaSID, sizeof(groupmap[2].sambaSID), + "%s-514", sid); + snprintf(groupmap[2].group_dn, sizeof(groupmap[2].group_dn), + "cn=Domain Guests,ou=%s,%s", + group_attr, suffix); accountmap[2].rid = 514; - pstr_sprintf(accountmap[2].cn, "%s", "Domain Guests"); + snprintf(accountmap[2].cn, sizeof(accountmap[2].cn), + "%s", "Domain Guests"); groupmap[3].rid = 515; groupmap[3].gidNumber = 515; - pstr_sprintf(groupmap[3].sambaSID, "%s-515", sid); - pstr_sprintf(groupmap[3].group_dn, "cn=Domain Computers,ou=%s,%s", - group_attr, suffix); + snprintf(groupmap[3].sambaSID, sizeof(groupmap[3].sambaSID), + "%s-515", sid); + snprintf(groupmap[3].group_dn, sizeof(groupmap[3].group_dn), + "cn=Domain Computers,ou=%s,%s", + group_attr, suffix); accountmap[3].rid = 515; - pstr_sprintf(accountmap[3].cn, "%s", "Domain Computers"); + snprintf(accountmap[3].cn, sizeof(accountmap[3].cn), + "%s", "Domain Computers"); groupmap[4].rid = 544; groupmap[4].gidNumber = 544; - pstr_sprintf(groupmap[4].sambaSID, "%s-544", builtin_sid); - pstr_sprintf(groupmap[4].group_dn, "cn=Administrators,ou=%s,%s", - group_attr, suffix); + snprintf(groupmap[4].sambaSID, sizeof(groupmap[4].sambaSID), + "%s-544", builtin_sid); + snprintf(groupmap[4].group_dn, sizeof(groupmap[4].group_dn), + "cn=Administrators,ou=%s,%s", + group_attr, suffix); accountmap[4].rid = 515; - pstr_sprintf(accountmap[4].cn, "%s", "Administrators"); + snprintf(accountmap[4].cn, sizeof(accountmap[4].cn), + "%s", "Administrators"); groupmap[5].rid = 550; groupmap[5].gidNumber = 550; - pstr_sprintf(groupmap[5].sambaSID, "%s-550", builtin_sid); - pstr_sprintf(groupmap[5].group_dn, "cn=Print Operators,ou=%s,%s", - group_attr, suffix); + snprintf(groupmap[5].sambaSID, sizeof(groupmap[5].sambaSID), + "%s-550", builtin_sid); + snprintf(groupmap[5].group_dn, sizeof(groupmap[5].group_dn), + "cn=Print Operators,ou=%s,%s", + group_attr, suffix); accountmap[5].rid = 550; - pstr_sprintf(accountmap[5].cn, "%s", "Print Operators"); + snprintf(accountmap[5].cn, sizeof(accountmap[5].cn), + "%s", "Print Operators"); groupmap[6].rid = 551; groupmap[6].gidNumber = 551; - pstr_sprintf(groupmap[6].sambaSID, "%s-551", builtin_sid); - pstr_sprintf(groupmap[6].group_dn, "cn=Backup Operators,ou=%s,%s", - group_attr, suffix); + snprintf(groupmap[6].sambaSID, sizeof(groupmap[6].sambaSID), + "%s-551", builtin_sid); + snprintf(groupmap[6].group_dn, sizeof(groupmap[6].group_dn), + "cn=Backup Operators,ou=%s,%s", + group_attr, suffix); accountmap[6].rid = 551; - pstr_sprintf(accountmap[6].cn, "%s", "Backup Operators"); + snprintf(accountmap[6].cn, sizeof(accountmap[6].cn), + "%s", "Backup Operators"); groupmap[7].rid = 552; groupmap[7].gidNumber = 552; - pstr_sprintf(groupmap[7].sambaSID, "%s-552", builtin_sid); - pstr_sprintf(groupmap[7].group_dn, "cn=Replicators,ou=%s,%s", - group_attr, suffix); + snprintf(groupmap[7].sambaSID, sizeof(groupmap[7].sambaSID), + "%s-552", builtin_sid); + snprintf(groupmap[7].group_dn, sizeof(groupmap[7].group_dn), + "cn=Replicators,ou=%s,%s", + group_attr, suffix); accountmap[7].rid = 551; - pstr_sprintf(accountmap[7].cn, "%s", "Replicators"); + snprintf(accountmap[7].cn, sizeof(accountmap[7].cn), + "%s", "Replicators"); SAFE_FREE(group_attr); return NT_STATUS_OK; } @@ -1412,8 +1436,8 @@ static NTSTATUS fetch_group_info_to_ldif(SAM_DELTA_CTR *delta, GROUPMAP *groupma char *group_attr = sstring_sub(lp_ldap_group_suffix(), '=', ','); /* Get the group name */ - unistr2_to_ascii(groupname, - &(delta->group_info.uni_grp_name), + unistr2_to_ascii(groupname, + &delta->group_info.uni_grp_name, sizeof(groupname)); /* Set up the group type (always 2 for group info) */ @@ -1439,8 +1463,9 @@ static NTSTATUS fetch_group_info_to_ldif(SAM_DELTA_CTR *delta, GROUPMAP *groupma g_rid = delta->group_info.gid.g_rid; groupmap->rid = g_rid; groupmap->gidNumber = ldif_gid; - pstr_sprintf(groupmap->sambaSID, "%s-%d", sid, g_rid); - pstr_sprintf(groupmap->group_dn, + snprintf(groupmap->sambaSID, sizeof(groupmap->sambaSID), + "%s-%d", sid, g_rid); + snprintf(groupmap->group_dn, sizeof(groupmap->group_dn), "cn=%s,ou=%s,%s", groupname, group_attr, suffix); /* Write the data to the temporary add ldif file */ @@ -1483,7 +1508,7 @@ static NTSTATUS fetch_account_info_to_ldif(SAM_DELTA_CTR *delta, int i; /* Get the username */ - unistr2_to_ascii(username, + unistr2_to_ascii(username, &(delta->account_info.uni_acct_name), sizeof(username)); @@ -1492,21 +1517,21 @@ static NTSTATUS fetch_account_info_to_ldif(SAM_DELTA_CTR *delta, /* Map the rid and username for group member info later */ accountmap->rid = rid; - pstr_sprintf(accountmap->cn, "%s", username); + snprintf(accountmap->cn, sizeof(accountmap->cn), "%s", username); /* Get the home directory */ if (delta->account_info.acb_info & ACB_NORMAL) { unistr2_to_ascii(homedir, &(delta->account_info.uni_home_dir), sizeof(homedir)); if (!*homedir) { - pstr_sprintf(homedir, "/home/%s", username); + snprintf(homedir, sizeof(homedir), "/home/%s", username); } else { - pstr_sprintf(homedir, "/nobodyshomedir"); + snprintf(homedir, sizeof(homedir), "/nobodyshomedir"); } ou = lp_ldap_user_suffix(); } else { ou = lp_ldap_machine_suffix(); - pstr_sprintf(homedir, "/machinehomedir"); + snprintf(homedir, sizeof(homedir), "/machinehomedir"); } /* Get the logon script */ @@ -1568,7 +1593,7 @@ static NTSTATUS fetch_account_info_to_ldif(SAM_DELTA_CTR *delta, return NT_STATUS_UNSUCCESSFUL; } gidNumber = groupmap[i].gidNumber; - pstr_sprintf(sambaSID, groupmap[i].sambaSID); + snprintf(sambaSID, sizeof(sambaSID), groupmap[i].sambaSID); /* Set up sambaAcctFlags */ flags = pdb_encode_acct_ctrl(delta->account_info.acb_info, @@ -1677,7 +1702,8 @@ static NTSTATUS fetch_alias_info_to_ldif(SAM_DELTA_CTR *delta, /* Map the group rid and gid */ g_rid = delta->group_info.gid.g_rid; groupmap->gidNumber = ldif_gid; - pstr_sprintf(groupmap->sambaSID, "%s-%d", sid, g_rid); + snprintf(groupmap->sambaSID, sizeof(groupmap->sambaSID), + "%s-%d", sid, g_rid); /* Write the data to the temporary add ldif file */ fprintf(add_fd, "# %s, %s, %s\n", aliasname, group_attr, @@ -1704,7 +1730,7 @@ static NTSTATUS fetch_alias_info_to_ldif(SAM_DELTA_CTR *delta, static NTSTATUS fetch_groupmem_info_to_ldif(SAM_DELTA_CTR *delta, SAM_DELTA_HDR *hdr_delta, GROUPMAP *groupmap, - ACCOUNTMAP *accountmap, + ACCOUNTMAP *accountmap, FILE *mod_fd, int alloced) { fstring group_dn; @@ -1718,11 +1744,11 @@ static NTSTATUS fetch_groupmem_info_to_ldif(SAM_DELTA_CTR *delta, if (groupmap[j].rid == group_rid) break; } if (j == alloced){ - DEBUG(1, ("Could not find rid %d in groupmap array\n", + DEBUG(1, ("Could not find rid %d in groupmap array\n", group_rid)); return NT_STATUS_UNSUCCESSFUL; } - pstr_sprintf(group_dn, "%s", groupmap[j].group_dn); + snprintf(group_dn, sizeof(group_dn), "%s", groupmap[j].group_dn); fprintf(mod_fd, "dn: %s\n", group_dn); /* Get the cn for each member */ |