From: Diego Nieto Cid <[email protected]>

    ../../utils/rpctrace.c: In function 'new_send_wrapper':
    ../../utils/rpctrace.c:359:3: warning: ignoring return value of 'asprintf' 
declared with attribute
     'warn_unused_result' [-Wunused-result]

    ../../utils/rpctrace.c: In function 'trace_and_forward':
    ../../utils/rpctrace.c:1256:19: warning: ignoring return value of 
'asprintf' declared with attribute 'warn_unused_result' [-Wunused-result]
    ../../utils/rpctrace.c:1260:19: warning: ignoring return value of 
'asprintf' declared with attribute 'warn_unused_result' [-Wunused-result]

    ../../utils/rpctrace.c: In function 'wrap_new_thread':
    ../../utils/rpctrace.c:1061:3: warning: ignoring return value of 'asprintf' 
declared with attribute 'warn_unused_result' [-Wunused-result]

    ../../utils/rpctrace.c: In function 'wrap_new_task':
    ../../utils/rpctrace.c:1108:3: warning: ignoring return value of 'asprintf' 
declared with attribute 'warn_unused_result' [-Wunused-result]
    ../../utils/rpctrace.c:1111:3: warning: ignoring return value of 'asprintf' 
declared with attribute 'warn_unused_result' [-Wunused-result]

    ../../utils/rpctrace.c: In function 'wrap_all_threads':
    ../../utils/rpctrace.c:1008:11: warning: ignoring return value of 
'asprintf' declared with attribute 'warn_unused_result' [-Wunused-result]

    ../../utils/rpctrace.c: In function 'traced_spawn':
    ../../utils/rpctrace.c:1678:3: warning: ignoring return value of 'asprintf' 
declared with attribute 'warn_unused_result' [-Wunused-result]
---
 utils/rpctrace.c | 42 +++++++++++++++++++++++++++++-------------
 1 file changed, 29 insertions(+), 13 deletions(-)

diff --git a/utils/rpctrace.c b/utils/rpctrace.c
index 3cc1f28e..864bdd74 100644
--- a/utils/rpctrace.c
+++ b/utils/rpctrace.c
@@ -356,8 +356,13 @@ new_send_wrapper (struct receiver_info *receive, task_t 
task,
   assert_perror_backtrace (err);
 
   TRACED_INFO (info)->name = 0;
-  asprintf (&TRACED_INFO (info)->name, "  %u<--%u(pid%d)",
-           receive->forward, TRACED_INFO (info)->pi.port_right, task2pid 
(task));
+  err = asprintf (&TRACED_INFO (info)->name, "  %u<--%u(pid%d)",
+                 receive->forward, TRACED_INFO (info)->pi.port_right, task2pid 
(task));
+  if (err == -1)
+    {
+      ports_port_deref (info);
+      assert_perror_backtrace (errno);
+    }
   TRACED_INFO (info)->type = MACH_MSG_TYPE_MOVE_SEND;
   info->task = task;
   info->receive_right = receive;
@@ -1005,8 +1010,10 @@ wrap_all_threads (task_t task)
          thread_send_wrapper = new_send_wrapper (thread_receiver_info,
                                                  task, &new_thread_port);
          free (TRACED_INFO (thread_send_wrapper)->name);
-         asprintf (&TRACED_INFO (thread_send_wrapper)->name,
-                   "thread%u(pid%d)", threads[i], task2pid (task));
+         err = asprintf (&TRACED_INFO (thread_send_wrapper)->name,
+                         "thread%u(pid%d)", threads[i], task2pid (task));
+         if (err == -1)
+           error (2, errno, "asprintf");
 
          err = mach_port_insert_right (mach_task_self (),
                                        new_thread_port, new_thread_port,
@@ -1058,8 +1065,10 @@ wrap_new_thread (mach_msg_header_t *inp, struct req_info 
*req)
   mach_port_deallocate (mach_task_self (), reply->child_thread);
 
   free (TRACED_INFO (send_wrapper)->name);
-  asprintf (&TRACED_INFO (send_wrapper)->name, "thread%u(pid%d)",
-           thread_port, task2pid (req->from));
+  err = asprintf (&TRACED_INFO (send_wrapper)->name, "thread%u(pid%d)",
+                 thread_port, task2pid (req->from));
+  if (err == -1)
+    error (2, errno, "asprintf");
   ports_port_deref (send_wrapper);
 }
 
@@ -1105,11 +1114,15 @@ wrap_new_task (mach_msg_header_t *inp, struct req_info 
*req)
 
   pid = task2pid (task_port);
   free (TRACED_INFO (task_wrapper1)->name);
-  asprintf (&TRACED_INFO (task_wrapper1)->name, "task%u(pid%d)",
-           task_port, task2pid (req->from));
+  err = asprintf (&TRACED_INFO (task_wrapper1)->name, "task%u(pid%d)",
+                 task_port, task2pid (req->from));
+  if (err == -1)
+    error (2, errno, "asprintf");
   free (TRACED_INFO (task_wrapper2)->name);
-  asprintf (&TRACED_INFO (task_wrapper2)->name, "task%u(pid%d)",
-           task_port, pid);
+  err = asprintf (&TRACED_INFO (task_wrapper2)->name, "task%u(pid%d)",
+                 task_port, pid);
+  if (err == -1)
+    error (2, errno, "asprintf");
   ports_port_deref (task_wrapper1);
 }
 
@@ -1253,13 +1266,14 @@ trace_and_forward (mach_msg_header_t *inp, 
mach_msg_header_t *outp)
            if (TRACED_INFO (info)->name == 0)
              {
                if (msgid == 0)
-                 asprintf (&TRACED_INFO (info)->name, "reply(%u:%u)",
+                 err = asprintf (&TRACED_INFO (info)->name, "reply(%u:%u)",
                            (unsigned int) TRACED_INFO (info)->pi.port_right,
                            (unsigned int) inp->msgh_id);
                else
-                 asprintf (&TRACED_INFO (info)->name, "reply(%u:%s)",
+                 err = asprintf (&TRACED_INFO (info)->name, "reply(%u:%s)",
                            (unsigned int) TRACED_INFO (info)->pi.port_right,
                            msgid->name);
+               assert_backtrace (err != -1);
              }
            break;
 
@@ -1675,7 +1689,9 @@ traced_spawn (char **argv, char **envp)
   ti = new_send_wrapper (receive_ti, traced_task, &task_wrapper);
   ti->task = traced_task;
   free (TRACED_INFO (ti)->name);
-  asprintf (&TRACED_INFO (ti)->name, "task%u(pid%d)", traced_task, pid);
+  err = asprintf (&TRACED_INFO (ti)->name, "task%u(pid%d)", traced_task, pid);
+  if (err == -1)
+    assert_perror_backtrace (errno);
 
   /* Replace the task's kernel port with the wrapper.  When this task calls
      `mach_task_self ()', it will get our wrapper send right instead of its
-- 
2.51.0


Reply via email to