diff options
author | Joseph Myers <joseph@codesourcery.com> | 2014-11-26 20:54:16 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2014-11-26 20:54:16 +0000 |
commit | 8915eacef88eb25ac94e6bb37b473adb326e9d1b (patch) | |
tree | cb431216b6925c65f721537f7370830938b9b79d | |
parent | f1a5a0e3c3d32bb800a0a63a0cfcd1b25a8e3d4d (diff) | |
download | glibc-8915eacef88eb25ac94e6bb37b473adb326e9d1b.tar.gz glibc-8915eacef88eb25ac94e6bb37b473adb326e9d1b.tar.xz glibc-8915eacef88eb25ac94e6bb37b473adb326e9d1b.zip |
Avoid warnings for unused results in nscd/connections.c.
This patch avoids warnings for unused results of setuid and setgid in nscd/connections.c using an ignore_value macro along the lines suggested by Paul in <https://sourceware.org/ml/libc-alpha/2014-11/msg00733.html>. Tested for x86_64. * include/libc-internal.h (ignore_value): New macro. * nscd/connections.c (restart): Wrap calls to setuid and setgid with ignore_value.
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | include/libc-internal.h | 6 | ||||
-rw-r--r-- | nscd/connections.c | 10 |
3 files changed, 15 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog index 5ec7f0d96b..44c9453930 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2014-11-26 Joseph Myers <joseph@codesourcery.com> + * include/libc-internal.h (ignore_value): New macro. + * nscd/connections.c (restart): Wrap calls to setuid and setgid + with ignore_value. + * sysdeps/mips/__longjmp.c (____longjmp): Use prototype definition. diff --git a/include/libc-internal.h b/include/libc-internal.h index 78f82da58a..2ced1c17d3 100644 --- a/include/libc-internal.h +++ b/include/libc-internal.h @@ -70,4 +70,10 @@ extern void __init_misc (int, char **, char **); #define PTR_ALIGN_UP(base, size) \ ((__typeof__ (base)) ALIGN_UP ((uintptr_t) (base), (size))) +/* Ignore the value of an expression when a cast to void does not + suffice (in particular, for a call to a function declared with + attribute warn_unused_result). */ +#define ignore_value(x) \ + ({ __typeof__ (x) __ignored_value = (x); (void) __ignored_value; }) + #endif /* _LIBC_INTERNAL */ diff --git a/nscd/connections.c b/nscd/connections.c index 3e950af9f1..1631212980 100644 --- a/nscd/connections.c +++ b/nscd/connections.c @@ -1464,7 +1464,7 @@ cannot change to old UID: %s; disabling paranoia mode"), cannot change to old GID: %s; disabling paranoia mode"), strerror (errno)); - setuid (server_uid); + ignore_value (setuid (server_uid)); paranoia = 0; return; } @@ -1479,8 +1479,8 @@ cannot change to old working directory: %s; disabling paranoia mode"), if (server_user != NULL) { - setuid (server_uid); - setgid (server_gid); + ignore_value (setuid (server_uid)); + ignore_value (setgid (server_gid)); } paranoia = 0; return; @@ -1524,8 +1524,8 @@ cannot change to old working directory: %s; disabling paranoia mode"), if (server_user != NULL) { - setuid (server_uid); - setgid (server_gid); + ignore_value (setuid (server_uid)); + ignore_value (setgid (server_gid)); } if (chdir ("/") != 0) dbg_log (_("cannot change current working directory to \"/\": %s"), |