r2331: check password script code and example from trunk
[sfrench/samba-autobuild/.git] / source3 / rpc_server / srv_samr_nt.c
index eca0913c1c239cf71f5087298178ab5bf334a8e3..74f6030365d8ff628e94d68751ce0a98000c9256 100644 (file)
@@ -2240,7 +2240,7 @@ NTSTATUS _samr_create_user(pipes_struct *p, SAMR_Q_CREATE_USER *q_u, SAMR_R_CREA
 
                if (*add_script) {
                        int add_ret;
-                       all_string_sub(add_script, "%u", account, sizeof(account));
+                       all_string_sub(add_script, "%u", account, sizeof(add_script));
                        add_ret = smbrun(add_script,NULL);
                        DEBUG(3,("_samr_create_user: Running the command `%s' gave %d\n", add_script, add_ret));
                }
@@ -3245,9 +3245,6 @@ static void add_uid_to_array_unique(uid_t uid, uid_t **uids, int *num)
 {
        int i;
 
-       if ((*num) >= groups_max())
-               return;
-
        for (i=0; i<*num; i++) {
                if ((*uids)[i] == uid)
                        return;
@@ -3295,16 +3292,12 @@ static BOOL get_memberuids(gid_t gid, uid_t **uids, int *num)
 
        /* Secondary group members */
 
-       gr = grp->gr_mem;
-       while ((*gr != NULL) && ((*gr)[0] != '\0')) {
+       for (gr = grp->gr_mem; (*gr != NULL) && ((*gr)[0] != '\0'); gr += 1) {
                struct passwd *pw = getpwnam(*gr);
 
                if (pw == NULL)
                        continue;
-
                add_uid_to_array_unique(pw->pw_uid, uids, num);
-
-               gr += 1;
        }
 
        winbind_on();
@@ -3633,7 +3626,7 @@ static int smb_delete_user(const char *unix_user)
        pstrcpy(del_script, lp_deluser_script());
        if (! *del_script)
                return -1;
-       all_string_sub(del_script, "%u", unix_user, sizeof(pstring));
+       all_string_sub(del_script, "%u", unix_user, sizeof(del_script));
        ret = smbrun(del_script,NULL);
        DEBUG(3,("smb_delete_user: Running the command `%s' gave %d\n",del_script,ret));