]> granicus.if.org Git - linux-pam/commitdiff
Relevant BUGIDs: 1106011
authorThorsten Kukuk <kukuk@thkukuk.de>
Tue, 25 Jan 2005 10:43:11 +0000 (10:43 +0000)
committerThorsten Kukuk <kukuk@thkukuk.de>
Tue, 25 Jan 2005 10:43:11 +0000 (10:43 +0000)
Purpose of commit: bugfix

Commit summary:
---------------

Fix compilation on systems without PATH_MAX

modules/pam_mkhomedir/pam_mkhomedir.c

index f2f92974a4d3c5d2899952071e01c13803cd9d19..f63177bf9c02a0655802308ba8decf57bcfcfd0e 100644 (file)
@@ -222,10 +222,10 @@ static int create_homedir(pam_handle_t * pamh, int ctrl,
       int Res;
       struct stat St;
 #ifndef PATH_MAX
-      char *newsource = NULL; *newdest = NULL;
+      char *newsource = NULL, *newdest = NULL;
       /* track length of buffers */
       int nslen = 0, ndlen = 0;
-      slen = strlen(source), dlen = strlen(dest);
+      int slen = strlen(source), dlen = strlen(dest);
 #else
       char newsource[PATH_MAX], newdest[PATH_MAX];
 #endif
@@ -237,11 +237,11 @@ static int create_homedir(pam_handle_t * pamh, int ctrl,
 
       /* Determine what kind of file it is. */
 #ifndef PATH_MAX
-      if ( ( nslen <= 0 ) || ( ndlen <= 0) )
+      nslen = slen + strlen(Dir->d_name) + 2;
+
+      if (nslen <= 0)
              return PAM_BUF_ERR;
 
-      nslen = slen + strlen(Dir->d_name) + 2;
-      
       if ( (newsource = malloc(nslen)) == NULL ) 
              return PAM_BUF_ERR;
 
@@ -266,7 +266,10 @@ static int create_homedir(pam_handle_t * pamh, int ctrl,
 #ifndef PATH_MAX
         ndlen = dlen + strlen(Dir->d_name)+2;
 
-        if ( (newdest = (int *) malloc(ndlen)) == NULL ) {
+         if (ndlen <= 0)
+                 return PAM_BUF_ERR;
+
+        if ( (newdest = malloc(ndlen)) == NULL ) {
                 free(newsource);
                 return PAM_BUF_ERR;
         }