]> granicus.if.org Git - php/commitdiff
Overwrite control chars in parameters with whitespace instead of truncating.
authorStefan Esser <sesser@php.net>
Sat, 24 Aug 2002 11:37:50 +0000 (11:37 +0000)
committerStefan Esser <sesser@php.net>
Sat, 24 Aug 2002 11:37:50 +0000 (11:37 +0000)
ext/standard/mail.c

index 6da774523df99c4c7541f49dc91d0a4b631e630d..6e3fd4a2774a1a8006ca0497a29f51f33796015b 100644 (file)
@@ -88,21 +88,27 @@ PHP_FUNCTION(mail)
        }
 
        if (to_len > 0) {
-               for(to_len--;to_len;to_len--) {
-                       if(!isspace((unsigned char)to[to_len]))break;
-                       to[to_len]='\0';
+               for(;to_len;to_len--) {
+                       if(!isspace((unsigned char)to[to_len-1]))break;
+                       to[to_len-1]='\0';
+               }
+               for(i=0;to[i];i++) {
+                       if (iscntrl((unsigned char)to[i])) {
+                               to[i]=' ';
+                       }
                }
-               for(i=0;!iscntrl((unsigned char)to[i]);i++) {}
-               to[i]='\0';
        }
 
        if (subject_len > 0) {
-               for(subject_len--;subject_len;subject_len--) {
-                       if(!isspace((unsigned char)subject[subject_len]))break;
-                       subject[subject_len]='\0';
+               for(;subject_len;subject_len--) {
+                       if(!isspace((unsigned char)subject[subject_len-1]))break;
+                       subject[subject_len-1]='\0';
+               }
+               for(i=0;subject[i];i++) {
+                       if (iscntrl((unsigned char)subject[i])) {
+                               subject[i]=' ';
+                       }
                }
-               for(i=0;!iscntrl((unsigned char)subject[i]);i++) {}
-               subject[i]='\0';
        }
 
        if(extra_cmd)