mirror of
https://github.com/isar/libmdbx.git
synced 2025-01-06 19:04:12 +08:00
mdbx: minor/paranoid fix mdbx_strerror().
This commit is contained in:
parent
113b29e68d
commit
b42462c484
@ -1496,17 +1496,20 @@ const char *__cold mdbx_strerror_r(int errnum, char *buf, size_t buflen) {
|
|||||||
return size ? buf : NULL;
|
return size ? buf : NULL;
|
||||||
#elif defined(_GNU_SOURCE) && defined(__GLIBC__)
|
#elif defined(_GNU_SOURCE) && defined(__GLIBC__)
|
||||||
/* GNU-specific */
|
/* GNU-specific */
|
||||||
|
if (errnum > 0)
|
||||||
msg = strerror_r(errnum, buf, buflen);
|
msg = strerror_r(errnum, buf, buflen);
|
||||||
#elif (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)
|
#elif (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)
|
||||||
/* XSI-compliant */
|
/* XSI-compliant */
|
||||||
if (strerror_r(errnum, buf, buflen) == 0)
|
if (errnum > 0 && strerror_r(errnum, buf, buflen) == 0)
|
||||||
msg = buf;
|
msg = buf;
|
||||||
#else
|
#else
|
||||||
|
if (errnum > 0) {
|
||||||
msg = strerror(errnum);
|
msg = strerror(errnum);
|
||||||
if (msg) {
|
if (msg) {
|
||||||
strncpy(buf, msg, buflen);
|
strncpy(buf, msg, buflen);
|
||||||
msg = buf;
|
msg = buf;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
if (!msg) {
|
if (!msg) {
|
||||||
(void)snprintf(buf, buflen, "error %d", errnum);
|
(void)snprintf(buf, buflen, "error %d", errnum);
|
||||||
@ -1524,6 +1527,7 @@ const char *__cold mdbx_strerror(int errnum) {
|
|||||||
#else
|
#else
|
||||||
const char *msg = __mdbx_strerr(errnum);
|
const char *msg = __mdbx_strerr(errnum);
|
||||||
if (!msg) {
|
if (!msg) {
|
||||||
|
if (errnum > 0)
|
||||||
msg = strerror(errnum);
|
msg = strerror(errnum);
|
||||||
if (!msg) {
|
if (!msg) {
|
||||||
static char buf[32];
|
static char buf[32];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user