From: Diego Nieto Cid <[email protected]>

    ../../libps/fmt.c: In function '_fmt_create':
    ../../libps/fmt.c:181:21: warning: ignoring return value of 'asprintf' 
declared with attribute 'warn_unused_result' [-Wunused-result]
      181 |                     asprintf (err_string, "%s: Unknown format 
spec", src);
          |                     
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ../../libps/fmt.c:250:17: warning: ignoring return value of 'asprintf' 
declared with attribute 'warn_unused_result' [-Wunused-result]
      250 |                 asprintf (err_string, "%s: Unknown format spec", 
name);
          |                 
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ../../libps/fmt.c: In function 'ps_fmt_creation_error':
    ../../libps/fmt.c:340:5: warning: ignoring return value of 'asprintf' 
declared with attribute 'warn_unused_result' [-Wunused-result]
      340 |     asprintf (error, "%s", strerror (err));
---
 libps/fmt.c | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/libps/fmt.c b/libps/fmt.c
index 853a610c..c0d1c998 100644
--- a/libps/fmt.c
+++ b/libps/fmt.c
@@ -177,14 +177,15 @@ _fmt_create (char *src, int posix, struct ps_fmt_specs 
*fmt_specs,
              /* if we didn't use any chars, don't loop indefinitely */
              if (src == start)
                {
+                 int err = 0;
                  if (err_string)
-                   asprintf (err_string, "%s: Unknown format spec", src);
+                   err = asprintf (err_string, "%s: Unknown format spec", src);
 
                  FREE (new_fmt->src);
                  FREE (new_fmt);
                  FREE (fields);
 
-                 return EINVAL;
+                 return err != -1 ? EINVAL : ENOMEM;
                }
 
              global_clr_flags = clr_flags;
@@ -246,14 +247,15 @@ _fmt_create (char *src, int posix, struct ps_fmt_specs 
*fmt_specs,
          if (! field->spec)
            /* Failed to find any named spec called NAME.  */
            {
+             int err = 0;
              if (err_string)
-               asprintf (err_string, "%s: Unknown format spec", name);
+               err = asprintf (err_string, "%s: Unknown format spec", name);
 
              FREE (new_fmt->src);
              FREE (fields);
              FREE (new_fmt);
 
-             return EINVAL;
+             return err != -1 ? EINVAL : ENOMEM;
            }
 
          if (! field->title)
@@ -337,7 +339,13 @@ ps_fmt_creation_error (char *src, int posix, struct 
ps_fmt_specs *fmt_specs,
   struct ps_fmt *fmt;
   error_t err = _fmt_create (src, posix, fmt_specs, &fmt, error);
   if (err != EINVAL)           /* ? */
-    asprintf (error, "%s", strerror (err));
+    {
+      int err2 = asprintf (error, "%s", strerror (err));
+      /* XXX silence unused variable warning, if memory fails (again) we have 
no way
+       * of notifying the caller.
+       */
+      (void) err2;
+    }
   if (! err)
     ps_fmt_free (fmt);
 }
-- 
2.51.0


Reply via email to