Merge pull request #663 from stoeckmann/strerror

Properly format errnos in _json_c_strerror
This commit is contained in:
Eric Hawicz
2020-08-23 16:38:21 -04:00
committed by GitHub
5 changed files with 18 additions and 2 deletions

View File

@@ -94,7 +94,7 @@ char *_json_c_strerror(int errno_in)
} }
// It's not one of the known errno values, return the numeric value. // It's not one of the known errno values, return the numeric value.
for (ii = 0; errno_in > 10; errno_in /= 10, ii++) for (ii = 0; errno_in >= 10; errno_in /= 10, ii++)
{ {
digbuf[ii] = "0123456789"[(errno_in % 10)]; digbuf[ii] = "0123456789"[(errno_in % 10)];
} }
@@ -105,5 +105,6 @@ char *_json_c_strerror(int errno_in)
{ {
errno_buf[start_idx] = digbuf[ii]; errno_buf[start_idx] = digbuf[ii];
} }
errno_buf[start_idx] = '\0';
return errno_buf; return errno_buf;
} }

View File

@@ -32,12 +32,13 @@ foreach(TESTNAME
test_printbuf test_printbuf
test_set_serializer test_set_serializer
test_set_value test_set_value
test_strerror
test_util_file test_util_file
test_visit test_visit
test_object_iterator) test_object_iterator)
add_executable(${TESTNAME} ${TESTNAME}.c) add_executable(${TESTNAME} ${TESTNAME}.c)
if(${TESTNAME} STREQUAL test_util_file) if(${TESTNAME} STREQUAL test_strerror OR ${TESTNAME} STREQUAL test_util_file)
# For output consistency, we need _json_c_strerror() in some tests: # For output consistency, we need _json_c_strerror() in some tests:
target_sources(${TESTNAME} PRIVATE ../strerror_override.c) target_sources(${TESTNAME} PRIVATE ../strerror_override.c)
endif() endif()

11
tests/test_strerror.c Normal file
View File

@@ -0,0 +1,11 @@
#include "strerror_override.h"
#include "strerror_override_private.h"
#include <stdio.h>
int main(int argc, char **argv)
{
puts(strerror(10000));
puts(strerror(999));
return 0;
}

View File

@@ -0,0 +1,2 @@
ERRNO=10000
ERRNO=999

1
tests/test_strerror.test Symbolic link
View File

@@ -0,0 +1 @@
test_basic.test