e09d503
From 0d26e4514d7d6c90d2c5e35749c0b83121a66b77 Mon Sep 17 00:00:00 2001
e09d503
From: "mtasaka@fedoraproject.org" <mtasaka@fedoraproject.org>
e09d503
Date: Tue, 7 Feb 2017 16:40:52 +0900
e09d503
Subject: [PATCH] misc: kill gcc warn_unused_result warnings
e09d503
e09d503
Remove misc warnings generated gcc -Wall with
e09d503
"warning: ignoring return value of 'foo',
e09d503
declared with attribute warn_unused_result".
e09d503
e09d503
For setuid() and fgets(), really check the returned value.
e09d503
For system(), for now just use empty body to avoid this
e09d503
warning. Note that casting the result to (void) does not
e09d503
remove these warnings.
e09d503
---
e09d503
 driver/demo-Gtk.c      | 9 +++++++--
e09d503
 hacks/glx/sonar-icmp.c | 2 +-
e09d503
 hacks/glx/sonar.c      | 5 +++--
e09d503
 hacks/recanim.c        | 6 +++++-
e09d503
 4 files changed, 16 insertions(+), 6 deletions(-)
e09d503
e09d503
diff --git a/driver/demo-Gtk.c b/driver/demo-Gtk.c
e09d503
index f5c4839..7c34846 100644
e09d503
--- a/driver/demo-Gtk.c
e09d503
+++ b/driver/demo-Gtk.c
e09d503
@@ -4423,7 +4423,8 @@ kde_screensaver_active_p (void)
e09d503
   FILE *p = popen ("dcop kdesktop KScreensaverIface isEnabled 2>/dev/null",
e09d503
                    "r");
e09d503
   char buf[255];
e09d503
-  fgets (buf, sizeof(buf)-1, p);
e09d503
+  if (!p) return False;
e09d503
+  if (!fgets (buf, sizeof(buf)-1, p)) return False;
e09d503
   pclose (p);
e09d503
   if (!strcmp (buf, "true\n"))
e09d503
     return True;
e09d503
@@ -4434,7 +4435,11 @@ kde_screensaver_active_p (void)
e09d503
 static void
e09d503
 kill_kde_screensaver (void)
e09d503
 {
e09d503
-  system ("dcop kdesktop KScreensaverIface enable false");
e09d503
+  /* Use empty body to kill warning from gcc -Wall with
e09d503
+     "warning: ignoring return value of 'system',
e09d503
+      declared with attribute warn_unused_result"
e09d503
+  */
e09d503
+  if (system ("dcop kdesktop KScreensaverIface enable false")) {}
e09d503
 }
e09d503
 
e09d503
 
e09d503
diff --git a/hacks/glx/sonar-icmp.c b/hacks/glx/sonar-icmp.c
e09d503
index 8256270..26eb90d 100644
e09d503
--- a/hacks/glx/sonar-icmp.c
e09d503
+++ b/hacks/glx/sonar-icmp.c
e09d503
@@ -1634,7 +1634,7 @@ sonar_init_ping (Display *dpy, char **error_ret, char **desc_ret,
e09d503
     fprintf (stderr, "%s: unable to open icmp socket\n", progname);
e09d503
 
e09d503
   /* Disavow privs */
e09d503
-  setuid(getuid());
e09d503
+  if (setuid(getuid()) == -1) abort();
e09d503
 
e09d503
   pd->pid = getpid() & 0xFFFF;
e09d503
   pd->seq = 0;
e09d503
diff --git a/hacks/glx/sonar.c b/hacks/glx/sonar.c
e09d503
index f3a4d9d..2c6ca5b 100644
e09d503
--- a/hacks/glx/sonar.c
e09d503
+++ b/hacks/glx/sonar.c
e09d503
@@ -930,8 +930,9 @@ init_sensor (ModeInfo *mi)
e09d503
     sp->ssd = sonar_init_ping (MI_DISPLAY (mi), &sp->error, &sp->desc,
e09d503
                                ping_arg, ping_timeout, resolve_p, times_p,
e09d503
                                debug_p);
e09d503
-  else
e09d503
-    setuid(getuid()); /* Disavow privs if not pinging. */
e09d503
+  else {
e09d503
+    if (setuid(getuid()) == -1) abort(); /* Disavow privs if not pinging. */
e09d503
+  }
e09d503
 
e09d503
   sp->start_time = double_time ();  /* for error message timing */
e09d503
 
e09d503
diff --git a/hacks/recanim.c b/hacks/recanim.c
e09d503
index 51379ed..a526c25 100644
e09d503
--- a/hacks/recanim.c
e09d503
+++ b/hacks/recanim.c
e09d503
@@ -324,7 +324,11 @@ screenhack_record_anim_free (record_anim_state *st)
e09d503
            " 2>&-",
e09d503
            fn);
e09d503
   fprintf (stderr, "%s: exec: %s\n", progname, cmd);
e09d503
-  system (cmd);
e09d503
+  /* Use empty body to kill warning from gcc -Wall with
e09d503
+     "warning: ignoring return value of 'system',
e09d503
+      declared with attribute warn_unused_result"
e09d503
+  */
e09d503
+  if (system (cmd)) {}
e09d503
 
e09d503
   if (stat (fn, &s))
e09d503
     {
e09d503
-- 
e09d503
2.9.3
e09d503