Support This Project

Changeset 2020

Show
Ignore:
Timestamp:
08/14/08 18:16:49 (4 months ago)
Author:
virdiq
Message:

Fix incorrect assumptions in do_mkdir that GetGroupByID and GetUserByID always return valid structs.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libwzd-core/wzd_ClientThread.c

    r2013 r2020  
    12351235int do_mkdir(UNUSED wzd_string_t *name, wzd_string_t *arg, wzd_context_t * context) 
    12361236{ 
    1237   char  * cmd = NULL, * path = NULL; 
     1237  char * cmd = NULL; 
     1238  char * path = NULL; 
    12381239  char * buffer = NULL; 
    12391240  int ret; 
    1240   wzd_user_t * user; 
     1241  wzd_user_t * user = NULL; 
     1242  wzd_group_t * group = NULL; 
    12411243  const char *param; 
    12421244 
     
    12531255 
    12541256  user = GetUserByID(context->userid); 
     1257  if (!user) 
     1258    goto label_error_mkdir; 
    12551259 
    12561260  if ( !(user->userperms & RIGHT_MKDIR) ) { ret = E_NOPERM; goto label_error_mkdir; } 
     
    13711375    goto label_error_mkdir; /* keep current ret value for later use */ 
    13721376  } else { 
    1373     const char *groupname=NULL; 
    13741377    if (user->group_num > 0) { 
    1375       groupname = GetGroupByID(user->groups[0])->groupname; 
    1376     } 
    1377     file_chown(buffer,user->username,groupname,context); 
     1378      group = GetGroupByID(user->groups[0]); 
     1379    } 
     1380    file_chown(buffer, 
     1381        user->username, 
     1382        group ? group->groupname : NULL, 
     1383        context 
     1384        ); 
    13781385 
    13791386    /* send message header */ 
     
    13991406        path, /* ftp-absolute path */ 
    14001407        user->username, 
    1401         (groupname)?groupname:"No Group", 
    1402         user->tagline 
     1408        group ? group->groupname : "No group", 
     1409        *(user->tagline) ? user->tagline : "No tagline" 
    14031410        ); 
    14041411  }