Support This Project

Changeset 2013

Show
Ignore:
Timestamp:
07/25/08 17:00:14 (4 months ago)
Author:
virdiq
Message:

Escape event arguments with quotation marks, to solve the issue with filenames containing spaces. This assumes that event arguments never contain quotation marks! A better event argument system (zero-copy) is needed, so consider this a temporary fix.

Files:

Legend:

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

    r2012 r2013  
    255255 
    256256    if (user) { 
    257       event_args = STR(user->username); 
     257      event_args = str_allocate(); 
     258      str_sprintf(event_args, "\"%s\"", user->username); 
    258259      event_send(mainConfig->event_mgr, EVENT_LOGOUT, 0, event_args, context); 
    259260      str_deallocate(event_args); 
     
    338339      { 
    339340        wzd_string_t * event_args = str_allocate(); 
    340         str_sprintf(event_args,"%s %s",user->username,context->current_action.arg); 
     341        str_sprintf(event_args, "\"%s\" \"%s\"", user->username, context->current_action.arg); 
    341342        if (event_send(mainConfig->event_mgr, EVENT_POSTUPLOAD, 0, event_args, context) == EVENT_DENY) 
    342343        { 
     
    12951296  { 
    12961297    wzd_string_t * event_args = str_allocate(); 
    1297     str_sprintf(event_args,"%s %s",user->username,buffer); 
     1298    str_sprintf(event_args, "\"%s\" \"%s\"", user->username, buffer); 
    12981299    ret = event_send(mainConfig->event_mgr, EVENT_PREMKDIR, 0, event_args, context); 
    12991300    str_deallocate(event_args); 
     
    13791380    send_message_raw("257- Command okay\r\n",context); 
    13801381    { 
    1381       wzd_string_t * event_args = STR(buffer); 
     1382      wzd_string_t * event_args = str_allocate(); 
     1383      str_sprintf(event_args, "\"%s\" \"%s\"", user->username, buffer); 
    13821384      event_send(mainConfig->event_mgr, EVENT_MKDIR, 257, event_args, context); 
    13831385      str_deallocate(event_args); 
     
    14731475    { 
    14741476      wzd_string_t * event_args = str_allocate(); 
    1475       str_sprintf(event_args,"%s %s",user->username,path); 
     1477      str_sprintf(event_args, "\"%s\" \"%s\"", user->username, path); 
    14761478      event_send(mainConfig->event_mgr, EVENT_RMDIR, 258, event_args, context); 
    14771479      str_deallocate(event_args); 
     
    20652067  { 
    20662068    wzd_string_t * event_args = str_allocate(); 
    2067     str_sprintf(event_args,"%s %s",user->username,path); 
     2069    str_sprintf(event_args, "\"%s\" \"%s\"", user->username, path); 
    20682070    ret = event_send(mainConfig->event_mgr, EVENT_PREDOWNLOAD, 0, event_args, context); 
    20692071    str_deallocate(event_args); 
     
    22772279  { 
    22782280    wzd_string_t * event_args = str_allocate(); 
    2279     str_sprintf(event_args,"%s %s",user->username,path); 
     2281    str_sprintf(event_args, "\"%s\" \"%s\"", user->username, path); 
    22802282    ret = event_send(mainConfig->event_mgr, EVENT_PREUPLOAD, 0, event_args, context); 
    22812283    str_deallocate(event_args); 
     
    27372739  if (!ret) { 
    27382740    { 
    2739       wzd_string_t * event_args = STR(path); 
     2741      wzd_string_t * event_args = str_allocate(); 
     2742      str_sprintf(event_args, "\"%s\" \"%s\"", user->username, path); 
    27402743      event_send(mainConfig->event_mgr, EVENT_DELE, 250, event_args, context); 
    27412744      str_deallocate(event_args); 
     
    30343037 
    30353038  event_args = str_allocate(); 
    3036   str_sprintf(event_args, "%s %s %s", user->username, context->current_action.arg, path); 
     3039  str_sprintf(event_args, "\"%s\" \"%s\" \"%s\"", user->username, context->current_action.arg, path); 
    30373040  if (event_send(mainConfig->event_mgr, EVENT_PRERENAME, 0, event_args, context) == EVENT_DENY) 
    30383041  { 
     
    33313334  send_message_raw("230- Command okay\r\n",context); 
    33323335  { 
    3333     wzd_string_t * event_args = STR(user->username); 
     3336    wzd_string_t * event_args = str_allocate(); 
     3337    str_sprintf(event_args, "\"%s\"", user->username); 
    33343338    event_send(mainConfig->event_mgr, EVENT_LOGIN, 230, event_args, context); 
    33353339    str_deallocate(event_args); 
  • trunk/libwzd-core/wzd_data.c

    r1994 r2013  
    263263 
    264264    /** \todo Find a way to indicate if transfer was ok in event */ 
    265     str_sprintf(event_args,"%s %s",user->username,context->current_action.arg); 
     265    str_sprintf(event_args, "\"%s\" \"%s\"", user->username, context->current_action.arg); 
    266266    if (event_send(mainConfig->event_mgr, event_id, reply_code, event_args, context) == EVENT_DENY && is_upload) 
    267267    { 
  • trunk/libwzd-core/wzd_site.c

    r2012 r2013  
    22432243      wzd_string_t * event_args = str_allocate(); 
    22442244      wzd_user_t * user = GetUserByID(context->userid); 
    2245       str_sprintf(event_args,"%s %s",user->username,str_tochar(filename)); 
     2245      str_sprintf(event_args, "\"%s\" \"%s\"", user->username, str_tochar(filename)); 
    22462246      ret = event_send(mainConfig->event_mgr, EVENT_PREWIPE, 0, event_args, context); 
    22472247      str_deallocate(event_args); 
     
    22652265      wzd_string_t * event_args = str_allocate(); 
    22662266      wzd_user_t * user = GetUserByID(context->userid); 
    2267       str_sprintf(event_args,"%s %s",user->username,str_tochar(filename)); 
     2267      str_sprintf(event_args, "\"%s\" \"%s\"", user->username, str_tochar(filename)); 
    22682268      event_send(mainConfig->event_mgr, EVENT_WIPE, 200, event_args, context); 
    22692269      str_deallocate(event_args);