@@ -368,7 +368,9 @@ static ssize_t php_stdiop_write(php_stream *stream, const char *buf, size_t coun
368368 return bytes_written ;
369369 }
370370 if (!(stream -> flags & PHP_STREAM_FLAG_SUPPRESS_ERRORS )) {
371- php_error_docref (NULL , E_NOTICE , "Write of %zu bytes failed with errno=%d %s" , count , errno , strerror (errno ));
371+ char errstr [256 ];
372+ php_error_docref (NULL , E_NOTICE , "Write of %zu bytes failed with errno=%d %s" ,
373+ count , errno , php_socket_strerror_s (errno , errstr , sizeof (errstr )));
372374 }
373375 }
374376 } else {
@@ -444,7 +446,9 @@ static ssize_t php_stdiop_read(php_stream *stream, char *buf, size_t count)
444446 /* TODO: Should this be treated as a proper error or not? */
445447 } else {
446448 if (!(stream -> flags & PHP_STREAM_FLAG_SUPPRESS_ERRORS )) {
447- php_error_docref (NULL , E_NOTICE , "Read of %zu bytes failed with errno=%d %s" , count , errno , strerror (errno ));
449+ char errstr [256 ];
450+ php_error_docref (NULL , E_NOTICE , "Read of %zu bytes failed with errno=%d %s" ,
451+ count , errno , php_socket_strerror_s (errno , errstr , sizeof (errstr )));
448452 }
449453
450454 /* TODO: Remove this special-case? */
@@ -1278,7 +1282,9 @@ static int php_plain_files_unlink(php_stream_wrapper *wrapper, const char *url,
12781282 ret = VCWD_UNLINK (url );
12791283 if (ret == -1 ) {
12801284 if (options & REPORT_ERRORS ) {
1281- php_error_docref1 (NULL , url , E_WARNING , "%s" , strerror (errno ));
1285+ char errstr [256 ];
1286+ php_error_docref1 (NULL , url , E_WARNING , "%s" ,
1287+ php_socket_strerror_s (errno , errstr , sizeof (errstr )));
12821288 }
12831289 return 0 ;
12841290 }
@@ -1324,6 +1330,7 @@ static int php_plain_files_rename(php_stream_wrapper *wrapper, const char *url_f
13241330
13251331 if (ret == -1 ) {
13261332#ifndef PHP_WIN32
1333+ char errstr [256 ];
13271334# ifdef EXDEV
13281335 if (errno == EXDEV ) {
13291336 zend_stat_t sb ;
@@ -1344,15 +1351,17 @@ static int php_plain_files_rename(php_stream_wrapper *wrapper, const char *url_f
13441351 * access to the file in the meantime.
13451352 */
13461353 if (VCWD_CHOWN (url_to , sb .st_uid , sb .st_gid )) {
1347- php_error_docref2 (NULL , url_from , url_to , E_WARNING , "%s" , strerror (errno ));
1354+ php_error_docref2 (NULL , url_from , url_to , E_WARNING , "%s" ,
1355+ php_socket_strerror_s (errno , errstr , sizeof (errstr )));
13481356 if (errno != EPERM ) {
13491357 success = 0 ;
13501358 }
13511359 }
13521360
13531361 if (success ) {
13541362 if (VCWD_CHMOD (url_to , sb .st_mode )) {
1355- php_error_docref2 (NULL , url_from , url_to , E_WARNING , "%s" , strerror (errno ));
1363+ php_error_docref2 (NULL , url_from , url_to , E_WARNING , "%s" ,
1364+ php_socket_strerror_s (errno , errstr , sizeof (errstr )));
13561365 if (errno != EPERM ) {
13571366 success = 0 ;
13581367 }
@@ -1363,10 +1372,12 @@ static int php_plain_files_rename(php_stream_wrapper *wrapper, const char *url_f
13631372 VCWD_UNLINK (url_from );
13641373 }
13651374 } else {
1366- php_error_docref2 (NULL , url_from , url_to , E_WARNING , "%s" , strerror (errno ));
1375+ php_error_docref2 (NULL , url_from , url_to , E_WARNING , "%s" ,
1376+ php_socket_strerror_s (errno , errstr , sizeof (errstr )));
13671377 }
13681378 } else {
1369- php_error_docref2 (NULL , url_from , url_to , E_WARNING , "%s" , strerror (errno ));
1379+ php_error_docref2 (NULL , url_from , url_to , E_WARNING , "%s" ,
1380+ php_socket_strerror_s (errno , errstr , sizeof (errstr )));
13701381 }
13711382# if !defined(ZTS ) && !defined(TSRM_WIN32 )
13721383 umask (oldmask );
@@ -1379,7 +1390,8 @@ static int php_plain_files_rename(php_stream_wrapper *wrapper, const char *url_f
13791390#ifdef PHP_WIN32
13801391 php_win32_docref2_from_error (GetLastError (), url_from , url_to );
13811392#else
1382- php_error_docref2 (NULL , url_from , url_to , E_WARNING , "%s" , strerror (errno ));
1393+ php_error_docref2 (NULL , url_from , url_to , E_WARNING , "%s" ,
1394+ php_socket_strerror_s (errno , errstr , sizeof (errstr )));
13831395#endif
13841396 return 0 ;
13851397 }
@@ -1459,11 +1471,12 @@ static int php_plain_files_mkdir(php_stream_wrapper *wrapper, const char *dir, i
14591471 if (!p ) {
14601472 p = buf ;
14611473 }
1474+ char errstr [256 ];
14621475 while (true) {
14631476 int ret = VCWD_MKDIR (buf , (mode_t ) mode );
14641477 if (ret < 0 && errno != EEXIST ) {
14651478 if (options & REPORT_ERRORS ) {
1466- php_error_docref (NULL , E_WARNING , "%s" , strerror (errno ));
1479+ php_error_docref (NULL , E_WARNING , "%s" , php_socket_strerror_s (errno , errstr , sizeof ( errstr ) ));
14671480 }
14681481 return 0 ;
14691482 }
@@ -1483,7 +1496,7 @@ static int php_plain_files_mkdir(php_stream_wrapper *wrapper, const char *dir, i
14831496 /* issue a warning to client when the last directory was created failed */
14841497 if (ret < 0 ) {
14851498 if (options & REPORT_ERRORS ) {
1486- php_error_docref (NULL , E_WARNING , "%s" , strerror (errno ));
1499+ php_error_docref (NULL , E_WARNING , "%s" , php_socket_strerror_s (errno , errstr , sizeof ( errstr ) ));
14871500 }
14881501 return 0 ;
14891502 }
@@ -1502,15 +1515,16 @@ static int php_plain_files_rmdir(php_stream_wrapper *wrapper, const char *url, i
15021515 return 0 ;
15031516 }
15041517
1518+ char errstr [256 ];
15051519#ifdef PHP_WIN32
15061520 if (!php_win32_check_trailing_space (url , strlen (url ))) {
1507- php_error_docref1 (NULL , url , E_WARNING , "%s" , strerror (ENOENT ));
1521+ php_error_docref1 (NULL , url , E_WARNING , "%s" , php_socket_strerror_s (ENOENT , errstr , sizeof ( errstr ) ));
15081522 return 0 ;
15091523 }
15101524#endif
15111525
15121526 if (VCWD_RMDIR (url ) < 0 ) {
1513- php_error_docref1 (NULL , url , E_WARNING , "%s" , strerror (errno ));
1527+ php_error_docref1 (NULL , url , E_WARNING , "%s" , php_socket_strerror_s (errno , errstr , sizeof ( errstr ) ));
15141528 return 0 ;
15151529 }
15161530
@@ -1529,10 +1543,11 @@ static int php_plain_files_metadata(php_stream_wrapper *wrapper, const char *url
15291543#endif
15301544 mode_t mode ;
15311545 int ret = 0 ;
1546+ char errstr [256 ];
15321547
15331548#ifdef PHP_WIN32
15341549 if (!php_win32_check_trailing_space (url , strlen (url ))) {
1535- php_error_docref1 (NULL , url , E_WARNING , "%s" , strerror (ENOENT ));
1550+ php_error_docref1 (NULL , url , E_WARNING , "%s" , php_socket_strerror_s (ENOENT , errstr , sizeof ( errstr ) ));
15361551 return 0 ;
15371552 }
15381553#endif
@@ -1551,7 +1566,8 @@ static int php_plain_files_metadata(php_stream_wrapper *wrapper, const char *url
15511566 if (VCWD_ACCESS (url , F_OK ) != 0 ) {
15521567 FILE * file = VCWD_FOPEN (url , "w" );
15531568 if (file == NULL ) {
1554- php_error_docref1 (NULL , url , E_WARNING , "Unable to create file %s because %s" , url , strerror (errno ));
1569+ php_error_docref1 (NULL , url , E_WARNING , "Unable to create file %s because %s" , url ,
1570+ php_socket_strerror_s (errno , errstr , sizeof (errstr )));
15551571 return 0 ;
15561572 }
15571573 fclose (file );
@@ -1594,7 +1610,8 @@ static int php_plain_files_metadata(php_stream_wrapper *wrapper, const char *url
15941610 return 0 ;
15951611 }
15961612 if (ret == -1 ) {
1597- php_error_docref1 (NULL , url , E_WARNING , "Operation failed: %s" , strerror (errno ));
1613+ php_error_docref1 (NULL , url , E_WARNING , "Operation failed: %s" ,
1614+ php_socket_strerror_s (errno , errstr , sizeof (errstr )));
15981615 return 0 ;
15991616 }
16001617 php_clear_stat_cache (0 , NULL , 0 );
0 commit comments