From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> Date: Thu, 27 Oct 2016 16:15:04 +0200 Return values were not checked from five calls of the function "printf". This issue was detected also by using the Coccinelle software. * Add a bit of exception handling there. * Optimise this function implementation a bit. - Replace two output calls with the functions "fputs" and "puts". - Use the preincrement operator for the variable "total". Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> --- scripts/basic/bin2c.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/scripts/basic/bin2c.c b/scripts/basic/bin2c.c index c3d7eef..c6c8860 100644 --- a/scripts/basic/bin2c.c +++ b/scripts/basic/bin2c.c @@ -8,29 +8,35 @@ */ #include <stdio.h> +#include <errno.h> int main(int argc, char *argv[]) { int ch, total = 0; if (argc > 1) - printf("const char %s[] %s=\n", - argv[1], argc > 2 ? argv[2] : ""); + if (printf("const char %s[] %s=\n", + argv[1], argc > 2 ? argv[2] : "") < 16) + return errno; do { - printf("\t\""); + if (fputs("\t\"", stdout) < 0) + return errno; + while ((ch = getchar()) != EOF) { - total++; - printf("\\x%02x", ch); - if (total % 16 == 0) + if (printf("\\x%02x", ch) < 4) + return errno; + if (++total % 16 == 0) break; } - printf("\"\n"); + + if (puts("\"") < 0) + return errno; } while (ch != EOF); if (argc > 1) - printf("\t;\n\n#include <linux/types.h>\n\nconst size_t %s_size = %d;\n", - argv[1], total); - + if (printf("\t;\n\n#include <linux/types.h>\n\nconst size_t %s_size = %d;\n", + argv[1], total) < 54) + return errno; return 0; } -- 2.10.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html