@@ -614,34 +614,36 @@ PHPAPI bool php_mail(const char *to, const char *subject, const char *message, c
614614			size_t  msg_len  =  strlen (message );
615615			size_t  new_len  =  0 ;
616616
617- 			for  (size_t  i  =  0 ; i  <  msg_len  -  1 ; ++ i ) {
618- 				if  (message [i ] ==  '\r'  &&  message [i  +  1 ] ==  '\n' ) {
619- 					++ new_len ;
617+ 			if  (msg_len  >  0 ) {
618+ 				for  (size_t  i  =  0 ; i  <  msg_len  -  1 ; ++ i ) {
619+ 					if  (message [i ] ==  '\r'  &&  message [i  +  1 ] ==  '\n' ) {
620+ 						++ new_len ;
621+ 					}
620622				}
621- 			}
622623
623- 			if  (new_len  ==  0 ) {
624- 				fprintf (sendmail , "%s" , message );
625- 			} else  {
626- 				converted_message  =  emalloc (msg_len  -  new_len  +  1 );
627- 				size_t  j  =  0 ;
628- 				for  (size_t  i  =  0 ; i  <  msg_len ; ++ i ) {
629- 					if  (i  <  msg_len  -  1  &&  message [i ] ==  '\r'  &&  message [i  +  1 ] ==  '\n' ) {
630- 						converted_message [j ++ ] =  '\n' ;
631- 						++ i ; /* skip LF part */ 
632- 					} else  {
633- 						converted_message [j ++ ] =  message [i ];
624+ 				if  (new_len  ==  0 ) {
625+ 					fprintf (sendmail , "%s" , message );
626+ 				} else  {
627+ 					converted_message  =  emalloc (msg_len  -  new_len  +  1 );
628+ 					size_t  j  =  0 ;
629+ 					for  (size_t  i  =  0 ; i  <  msg_len ; ++ i ) {
630+ 						if  (i  <  msg_len  -  1  &&  message [i ] ==  '\r'  &&  message [i  +  1 ] ==  '\n' ) {
631+ 							converted_message [j ++ ] =  '\n' ;
632+ 							++ i ; /* skip LF part */ 
633+ 						} else  {
634+ 							converted_message [j ++ ] =  message [i ];
635+ 						}
634636					}
635- 				}
636637
637- 				converted_message [j ] =  '\0' ;
638- 				fprintf (sendmail , "%s" , converted_message );
639- 				efree (converted_message );
638+ 					converted_message [j ] =  '\0' ;
639+ 					fprintf (sendmail , "%s" , converted_message );
640+ 					efree (converted_message );
641+ 				}
640642			}
641643		} else  {
642644			fprintf (sendmail , "%s" , message );
643645		}
644- 		 
646+ 
645647		fprintf (sendmail , "%s" , line_sep );
646648#ifdef  PHP_WIN32 
647649		ret  =  pclose (sendmail );
0 commit comments