diff --git a/lib/libc/core/errno/errno.c b/lib/libc/core/errno/errno.c index 304bef5..51a54fb 100644 --- a/lib/libc/core/errno/errno.c +++ b/lib/libc/core/errno/errno.c @@ -11,7 +11,7 @@ int __attribute__((weak)) * __errno_location(void) #if defined(BUILD_STATIC) int __set_errno(int err) { - return -err; + return err == 0 ? 0 : -err; } #endif @@ -20,7 +20,7 @@ int __set_errno(int err) { /* TODO */ *__errno_location() = err; - return -1; + return err == 0 ? 0 : -1; } #endif