Changeset 1731

Show
Ignore:
Timestamp:
10/09/06 13:56:36 (2 years ago)
Author:
benjamin
Message:

remplacement de quotemeta, pas bon, par un escapeshellarg fait main en perl, et qui marche (tests avec ', " & co a l'appui

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • alternc-mailman/trunk/src/mailman.create

    r1594 r1731  
    1212} 
    1313 
     14sub escapeshellarg { 
     15        my ($st) = @_; 
     16        $st =~ s/\'/\'\\\'\'/; 
     17        return "'".$st."'"; 
     18} 
     19 
    1420$ENV{PATH} = ""; 
    1521delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV'}; 
     
    1824$( = $); 
    1925 
    20 if (!($listname =~ /^([a-z0-9]+)$/)) { 
     26if (!($listname =~ /^([a-z0-9]+\@[a-z0-9\.-]+)$/)) { 
    2127    die "List name is incorrect."; 
    2228} 
     
    3339$password=$1; 
    3440 
    35 exec($M_PATH." -q '".quotemeta($listname)."' '".quotemeta($email)."' '".quotemeta($password)."'"); 
    36  
     41exec($M_PATH." -q ".escapeshellarg($listname)." ".escapeshellarg($email)." ".escapeshellarg($password)); 
    3742 
    38430; 
  • alternc-mailman/trunk/src/mailman.delete

    r1594 r1731  
    1212} 
    1313 
     14sub escapeshellarg { 
     15        my ($st) = @_; 
     16        $st =~ s/\'/\'\\\'\'/; 
     17        return "'".$st."'"; 
     18} 
     19 
    1420$ENV{PATH} = ""; 
    1521delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV'}; 
     
    1824$( = $); 
    1925 
    20 if (!($listname =~ /^([a-z0-9]+)$/)) { 
     26if (!($listname =~ /^([a-z0-9]+)\@[a-z0-9\.-]+$/)) { 
    2127    die "List name is incorrect."; 
    2228} 
    2329$listname=$1; 
    2430 
    25 exec($M_PATH." -a '".quotemeta($listname)."'"); 
     31exec($M_PATH." -a ".escapeshellarg($listname)); 
    2632 
    27330;