@@ -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 }
@@ -1449,11 +1461,12 @@ static int php_plain_files_mkdir(php_stream_wrapper *wrapper, const char *dir, i
14491461 if (!p ) {
14501462 p = buf ;
14511463 }
1464+ char errstr [256 ];
14521465 while (true) {
14531466 int ret = VCWD_MKDIR (buf , (mode_t ) mode );
14541467 if (ret < 0 && errno != EEXIST ) {
14551468 if (options & REPORT_ERRORS ) {
1456- php_error_docref (NULL , E_WARNING , "%s" , strerror (errno ));
1469+ php_error_docref (NULL , E_WARNING , "%s" , php_socket_strerror_s (errno , errstr , sizeof ( errstr ) ));
14571470 }
14581471 return 0 ;
14591472 }
@@ -1473,7 +1486,7 @@ static int php_plain_files_mkdir(php_stream_wrapper *wrapper, const char *dir, i
14731486 /* issue a warning to client when the last directory was created failed */
14741487 if (ret < 0 ) {
14751488 if (options & REPORT_ERRORS ) {
1476- php_error_docref (NULL , E_WARNING , "%s" , strerror (errno ));
1489+ php_error_docref (NULL , E_WARNING , "%s" , php_socket_strerror_s (errno , errstr , sizeof ( errstr ) ));
14771490 }
14781491 return 0 ;
14791492 }
@@ -1492,15 +1505,16 @@ static int php_plain_files_rmdir(php_stream_wrapper *wrapper, const char *url, i
14921505 return 0 ;
14931506 }
14941507
1508+ char errstr [256 ];
14951509#ifdef PHP_WIN32
14961510 if (!php_win32_check_trailing_space (url , strlen (url ))) {
1497- php_error_docref1 (NULL , url , E_WARNING , "%s" , strerror (ENOENT ));
1511+ php_error_docref1 (NULL , url , E_WARNING , "%s" , php_socket_strerror_s (ENOENT , errstr , sizeof ( errstr ) ));
14981512 return 0 ;
14991513 }
15001514#endif
15011515
15021516 if (VCWD_RMDIR (url ) < 0 ) {
1503- php_error_docref1 (NULL , url , E_WARNING , "%s" , strerror (errno ));
1517+ php_error_docref1 (NULL , url , E_WARNING , "%s" , php_socket_strerror_s (errno , errstr , sizeof ( errstr ) ));
15041518 return 0 ;
15051519 }
15061520
@@ -1519,10 +1533,11 @@ static int php_plain_files_metadata(php_stream_wrapper *wrapper, const char *url
15191533#endif
15201534 mode_t mode ;
15211535 int ret = 0 ;
1536+ char errstr [256 ];
15221537
15231538#ifdef PHP_WIN32
15241539 if (!php_win32_check_trailing_space (url , strlen (url ))) {
1525- php_error_docref1 (NULL , url , E_WARNING , "%s" , strerror (ENOENT ));
1540+ php_error_docref1 (NULL , url , E_WARNING , "%s" , php_socket_strerror_s (ENOENT , errstr , sizeof ( errstr ) ));
15261541 return 0 ;
15271542 }
15281543#endif
@@ -1541,7 +1556,8 @@ static int php_plain_files_metadata(php_stream_wrapper *wrapper, const char *url
15411556 if (VCWD_ACCESS (url , F_OK ) != 0 ) {
15421557 FILE * file = VCWD_FOPEN (url , "w" );
15431558 if (file == NULL ) {
1544- php_error_docref1 (NULL , url , E_WARNING , "Unable to create file %s because %s" , url , strerror (errno ));
1559+ php_error_docref1 (NULL , url , E_WARNING , "Unable to create file %s because %s" , url ,
1560+ php_socket_strerror_s (errno , errstr , sizeof (errstr )));
15451561 return 0 ;
15461562 }
15471563 fclose (file );
@@ -1584,7 +1600,8 @@ static int php_plain_files_metadata(php_stream_wrapper *wrapper, const char *url
15841600 return 0 ;
15851601 }
15861602 if (ret == -1 ) {
1587- php_error_docref1 (NULL , url , E_WARNING , "Operation failed: %s" , strerror (errno ));
1603+ php_error_docref1 (NULL , url , E_WARNING , "Operation failed: %s" ,
1604+ php_socket_strerror_s (errno , errstr , sizeof (errstr )));
15881605 return 0 ;
15891606 }
15901607 php_clear_stat_cache (0 , NULL , 0 );
0 commit comments