Re: [PATCH] perf target: Ignore return value of strerror_r() explicitly

From: Namhyung Kim
Date: Mon Jul 02 2012 - 20:28:25 EST


2012-07-03 12:34 AM, Arnaldo Carvalho de Melo wrote:
Em Mon, Jul 02, 2012 at 03:20:14PM +0900, Namhyung Kim escreveu:
Since glibc 2.16 added the warn_unused_result (wur) attribute
to the function, we should check the return value or ignore it
explicitly.

Reported-by: Markus Trippelsdorf <markus@xxxxxxxxxxxxxxx>
Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>

+++ b/tools/perf/util/target.c
@@ -111,7 +111,8 @@ int perf_target__strerror(struct perf_target *target, int errnum,
const char *msg;

if (errnum >= 0) {
- strerror_r(errnum, buf, buflen);
+ /* make glibc (>= 2.16) happy */
+ (void)strerror_r(errnum, buf, buflen);

Is this really the best way to handle this?

What if some perf tool is buggy and passes an invalid errnum? Shouldn't
we catch that?


$ man strerror_r
...
RETURN VALUE
The strerror() and the GNU-specific strerror_r() functions
return the appropriate error description string, or an
"Unknown error nnn" message if the error number is unknown.

Isn't it sufficient? Or we can reset the @buf at the beginning for the case of a invalid negative @errnum.

Thanks,
Namhyung

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/