s3: Use strndup in parse_nss_param
authorVolker Lendecke <vl@samba.org>
Sat, 26 Feb 2011 10:53:21 +0000 (11:53 +0100)
committerVolker Lendecke <vl@samba.org>
Sun, 27 Feb 2011 18:19:05 +0000 (19:19 +0100)
source3/winbindd/nss_info.c

index a243a03948d41aaffa440ffdc4dd5edf55c79503..b8e32b99455be2bb4c937fe04680d55b646440ff 100644 (file)
@@ -88,8 +88,6 @@ static struct nss_function_entry *nss_get_backend(const char *name )
 static bool parse_nss_parm( const char *config, char **backend, char **domain )
 {
        char *p;
-       char *q;
-       int len;
 
        *backend = *domain = NULL;
 
@@ -111,17 +109,8 @@ static bool parse_nss_parm( const char *config, char **backend, char **domain )
                *domain = SMB_STRDUP( p+1 );
        }
 
-       len = PTR_DIFF(p,config)+1;
-       if ( (q = SMB_MALLOC_ARRAY( char, len )) == NULL ) {
-               SAFE_FREE( *backend );
-               return False;
-       }
-
-       StrnCpy( q, config, len-1);
-       q[len-1] = '\0';
-       *backend = q;
-
-       return True;
+       *backend = SMB_STRNDUP(config, PTR_DIFF(p, config));
+       return (*backend != NULL);
 }
 
 static NTSTATUS nss_domain_list_add_domain(const char *domain,