s3-samr: Remove fstring in samr.
authorAndreas Schneider <asn@samba.org>
Mon, 26 Sep 2011 15:59:02 +0000 (17:59 +0200)
committerAndreas Schneider <asn@cryptomilk.org>
Mon, 26 Sep 2011 17:56:04 +0000 (19:56 +0200)
Autobuild-User: Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date: Mon Sep 26 19:56:04 CEST 2011 on sn-devel-104

source3/rpc_server/samr/srv_samr_nt.c

index 9cd08873dd6f4d6626ceb09047aaf30819dc6d6d..567265d32383ee9b794fef8a821dc935798f9519 100644 (file)
@@ -1834,14 +1834,16 @@ NTSTATUS _samr_ChangePasswordUser2(struct pipes_struct *p,
        NTSTATUS status;
        char *user_name = NULL;
        char *rhost;
-       fstring wks;
+       const char *wks = NULL;
 
        DEBUG(5,("_samr_ChangePasswordUser2: %d\n", __LINE__));
 
        if (!r->in.account->string) {
                return NT_STATUS_INVALID_PARAMETER;
        }
-       fstrcpy(wks, r->in.server->string);
+       if (r->in.server && r->in.server->string) {
+               wks = r->in.server->string;
+       }
 
        DEBUG(5,("_samr_ChangePasswordUser2: user: %s wks: %s\n", user_name, wks));
 
@@ -6146,7 +6148,7 @@ NTSTATUS _samr_SetAliasInfo(struct pipes_struct *p,
        switch (r->in.level) {
                case ALIASINFONAME:
                {
-                       fstring group_name;
+                       char *group_name;
 
                        /* We currently do not support renaming groups in the
                           the BUILTIN domain.  Refer to util_builtin.c to understand
@@ -6178,9 +6180,16 @@ NTSTATUS _samr_SetAliasInfo(struct pipes_struct *p,
                        /* make sure the name doesn't already exist as a user
                           or local group */
 
-                       fstr_sprintf(group_name, "%s\\%s",
-                                    lp_netbios_name(), info->acct_name);
+                       group_name = talloc_asprintf(p->mem_ctx,
+                                                    "%s\\%s",
+                                                    lp_netbios_name(),
+                                                    info->acct_name);
+                       if (group_name == NULL) {
+                               return NT_STATUS_NO_MEMORY;
+                       }
+
                        status = can_create( p->mem_ctx, group_name );
+                       talloc_free(group_name);
                        if ( !NT_STATUS_IS_OK( status ) )
                                return status;
                        break;