Support This Project

Changeset 2016

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

Backport r2014 for 0.8.4: Fix SFV module to work with new event argument format (quotation marks around each argument).

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/0.8/modules/sfv/libwzd_sfv_main.c

    r1555 r2016  
    166166{ 
    167167  int ret; 
    168   const char * username, * filename; 
    169   char * str = strdup(args), * ptr; 
    170   username = strtok_r(str," ",&ptr); 
    171   filename = ptr; 
    172  
     168  const char * username; 
     169  const char * filename; 
     170  char * str = strdup(args); 
     171  char * end; 
     172 
     173  username = strchr(str, '\"') + 1; 
     174  if (!username) { 
     175    free(str); 
     176    return EVENT_ERROR; 
     177  } 
     178  end = strchr(username, '\"'); 
     179  if (!end) { 
     180    free(str); 
     181    return EVENT_ERROR; 
     182  } 
     183  *end = '\0'; 
     184 
     185  filename = strchr(end + 1, '\"') + 1; 
     186  if (!filename) { 
     187    free(str); 
     188    return EVENT_ERROR; 
     189  } 
     190  end = strchr(filename, '\"'); 
     191  if (!end) { 
     192    free(str); 
     193    return EVENT_ERROR; 
     194  } 
     195  *end = '\0'; 
     196   
    173197  ret = sfv_hook_preupload(EVENT_PREUPLOAD, username, filename); 
    174198 
     
    215239{ 
    216240  int ret; 
    217   const char * username, * filename; 
    218   char * str = strdup(args), * ptr; 
    219  
    220   username = strtok_r(str," ",&ptr); 
    221   filename = ptr; 
     241  const char * username; 
     242  const char * filename; 
     243  char * str = strdup(args); 
     244  char * end; 
     245 
     246  username = strchr(str, '\"') + 1; 
     247  if (!username) { 
     248    free(str); 
     249    return EVENT_ERROR; 
     250  } 
     251  end = strchr(username, '\"'); 
     252  if (!end) { 
     253    free(str); 
     254    return EVENT_ERROR; 
     255  } 
     256  *end = '\0'; 
     257 
     258  filename = strchr(end + 1, '\"') + 1; 
     259  if (!filename) { 
     260    free(str); 
     261    return EVENT_ERROR; 
     262  } 
     263  end = strchr(filename, '\"'); 
     264  if (!end) { 
     265    free(str); 
     266    return EVENT_ERROR; 
     267  } 
     268  *end = '\0'; 
    222269 
    223270  ret = sfv_hook_postupload(EVENT_POSTUPLOAD, username, filename); 
     
    253300static event_reply_t sfv_event_rmdir(const char * args) 
    254301{ 
    255  
    256302  int ret; 
    257   const char * username, * dirname; 
    258   char * str = strdup(args), * ptr; 
    259  
    260   username = strtok_r(str," ",&ptr); 
    261   dirname = ptr; 
     303  const char * username; 
     304  const char * dirname; 
     305  char * str = strdup(args); 
     306  char * end; 
     307 
     308  username = strchr(str, '\"') + 1; 
     309  if (!username) { 
     310    free(str); 
     311    return EVENT_ERROR; 
     312  } 
     313  end = strchr(username, '\"'); 
     314  if (!end) { 
     315    free(str); 
     316    return EVENT_ERROR; 
     317  } 
     318  *end = '\0'; 
     319 
     320  dirname = strchr(end + 1, '\"') + 1; 
     321  if (!dirname) { 
     322    free(str); 
     323    return EVENT_ERROR; 
     324  } 
     325  end = strchr(dirname, '\"'); 
     326  if (!end) { 
     327    free(str); 
     328    return EVENT_ERROR; 
     329  } 
     330  *end = '\0'; 
    262331 
    263332  ret = sfv_hook_rmdir(EVENT_RMDIR, username, dirname);