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