mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
selftests:timers: posix_timers: Fix warn_unused_result in __fatal_error()
__fatal_error routine doesn't check strerror_r() return value, which results in the following compile time warning: posix_timers.c: In function ‘__fatal_error’: posix_timers.c:31:9: warning: ignoring return value of ‘strerror_r’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 31 | strerror_r(errno, buf, sizeof(buf)); Fix this by adding a check for return value and error handling appropriate for the GNU-specific strerror_r() in use in __fatal_error(). Check if return string is null and handle accordingly. From Linux strerror_r() manual page: "The GNU-specific strerror_r() returns a pointer to a string containing the error message. This may be either a pointer to a string that the function stores in buf, or a pointer to some (immutable) static string (in which case buf is unused). If the function stores a string in buf, then at most buflen bytes are stored (the string may be truncated if buflen is too small and errnum is unknown). The string always includes a terminating null byte." Signed-off-by: Shuah Khan <skhan@linuxfoundation.org> Acked-by: John Stultz <jstultz@google.com> Acked-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
This commit is contained in:
parent
1ad999870a
commit
ba87297200
1 changed files with 8 additions and 4 deletions
|
@ -26,13 +26,17 @@
|
|||
static void __fatal_error(const char *test, const char *name, const char *what)
|
||||
{
|
||||
char buf[64];
|
||||
char *ret_str = NULL;
|
||||
|
||||
strerror_r(errno, buf, sizeof(buf));
|
||||
ret_str = strerror_r(errno, buf, sizeof(buf));
|
||||
|
||||
if (name && strlen(name))
|
||||
ksft_exit_fail_msg("%s %s %s %s\n", test, name, what, buf);
|
||||
if (name && strlen(name) && ret_str)
|
||||
ksft_exit_fail_msg("%s %s %s %s\n", test, name, what, ret_str);
|
||||
else if (ret_str)
|
||||
ksft_exit_fail_msg("%s %s %s\n", test, what, ret_str);
|
||||
else
|
||||
ksft_exit_fail_msg("%s %s %s\n", test, what, buf);
|
||||
ksft_exit_fail_msg("%s %s\n", test, what);
|
||||
|
||||
}
|
||||
|
||||
#define fatal_error(name, what) __fatal_error(__func__, name, what)
|
||||
|
|
Loading…
Add table
Reference in a new issue