From 599b6553e4bab4d776033aa2b70c2b38188b99b8 Mon Sep 17 00:00:00 2001 From: Sven Steinbauer Date: Thu, 19 May 2016 13:31:19 +0100 Subject: [PATCH] Infer fixes for asm Signed-off-by: Riccardo Schirone --- libr/asm/p/asm_cris_gnu.c | 1 + libr/asm/p/asm_hppa_gnu.c | 1 + libr/asm/p/asm_lanai_gnu.c | 1 + libr/asm/p/asm_nios2.c | 1 + libr/asm/p/asm_ppc_gnu.c | 1 + libr/asm/p/asm_tricore.c | 8 +++++++- libr/asm/p/asm_vax.c | 1 + libr/asm/p/asm_xtensa.c | 1 + 8 files changed, 14 insertions(+), 1 deletion(-) diff --git a/libr/asm/p/asm_cris_gnu.c b/libr/asm/p/asm_cris_gnu.c index f5b16e787a..60871cbbd8 100644 --- a/libr/asm/p/asm_cris_gnu.c +++ b/libr/asm/p/asm_cris_gnu.c @@ -56,6 +56,7 @@ static int buf_fprintf(void *stream, const char *format, ...) { flen = strlen (format); glen = strlen (buf_global); tmp = malloc (flen + glen + 2); + if (!tmp) return 0; memcpy (tmp, buf_global, glen); memcpy (tmp+glen, format, flen); tmp[flen+glen] = 0; diff --git a/libr/asm/p/asm_hppa_gnu.c b/libr/asm/p/asm_hppa_gnu.c index 3fb2da7005..d36cb5f8c7 100644 --- a/libr/asm/p/asm_hppa_gnu.c +++ b/libr/asm/p/asm_hppa_gnu.c @@ -57,6 +57,7 @@ static int buf_fprintf(void *stream, const char *format, ...) { flen = strlen (format); glen = strlen (buf_global); tmp = malloc (flen + glen + 2); + if (!tmp) return 0; memcpy (tmp, buf_global, glen); memcpy (tmp+glen, format, flen); tmp[flen+glen] = 0; diff --git a/libr/asm/p/asm_lanai_gnu.c b/libr/asm/p/asm_lanai_gnu.c index fbc622f221..e51d581524 100644 --- a/libr/asm/p/asm_lanai_gnu.c +++ b/libr/asm/p/asm_lanai_gnu.c @@ -47,6 +47,7 @@ static int buf_fprintf(void *stream, const char *format, ...) { flen = strlen (format); glen = strlen (buf_global); tmp = malloc (flen + glen + 2); + if (!tmp) return 0; memcpy (tmp, buf_global, glen); memcpy (tmp+glen, format, flen); tmp[flen+glen] = 0; diff --git a/libr/asm/p/asm_nios2.c b/libr/asm/p/asm_nios2.c index 5126f3ec7e..69c33fac5f 100644 --- a/libr/asm/p/asm_nios2.c +++ b/libr/asm/p/asm_nios2.c @@ -49,6 +49,7 @@ static int buf_fprintf(void *stream, const char *format, ...) { flen = strlen (format); glen = strlen (buf_global); tmp = malloc (flen + glen + 2); + if (!tmp) return 0; memcpy (tmp, buf_global, glen); memcpy (tmp+glen, format, flen); tmp[flen+glen] = 0; diff --git a/libr/asm/p/asm_ppc_gnu.c b/libr/asm/p/asm_ppc_gnu.c index f3637ee967..702698d4ac 100644 --- a/libr/asm/p/asm_ppc_gnu.c +++ b/libr/asm/p/asm_ppc_gnu.c @@ -47,6 +47,7 @@ static int buf_fprintf(void *stream, const char *format, ...) { flen = strlen (format); glen = strlen (buf_global); tmp = malloc (flen + glen + 2); + if (!tmp) return 0; memcpy (tmp, buf_global, glen); memcpy (tmp+glen, format, flen); tmp[flen+glen] = 0; diff --git a/libr/asm/p/asm_tricore.c b/libr/asm/p/asm_tricore.c index 61fa046ba0..6741da80d1 100644 --- a/libr/asm/p/asm_tricore.c +++ b/libr/asm/p/asm_tricore.c @@ -53,9 +53,15 @@ static int buf_fprintf(void *stream, const char *format, ...) { flen = strlen (format); glen = strlen (buf_global); tmp = malloc (flen + glen + 2); - if (tmp) { + if (!tmp) { + return 0; + } else { if (strchr (buf_global, '%')) { char *buf_local = strdup (buf_global); + if (!buf_local) { + free (tmp); + return 0; + } escaped = r_str_replace (buf_local, "%", "%%", true); } else { escaped = strdup (buf_global); diff --git a/libr/asm/p/asm_vax.c b/libr/asm/p/asm_vax.c index c6daac808a..83631f2bdb 100644 --- a/libr/asm/p/asm_vax.c +++ b/libr/asm/p/asm_vax.c @@ -54,6 +54,7 @@ static int buf_fprintf(void *stream, const char *format, ...) { flen = strlen (format); glen = strlen (buf_global); tmp = malloc (flen + glen + 2); + if (!tmp) return 0; memcpy (tmp, buf_global, glen); memcpy (tmp+glen, format, flen); tmp[flen+glen] = 0; diff --git a/libr/asm/p/asm_xtensa.c b/libr/asm/p/asm_xtensa.c index d26fd58675..8cad62b145 100644 --- a/libr/asm/p/asm_xtensa.c +++ b/libr/asm/p/asm_xtensa.c @@ -47,6 +47,7 @@ static int buf_fprintf(void *stream, const char *format, ...) { flen = strlen (format); glen = strlen (buf_global); tmp = malloc (flen + glen + 2); + if (!tmp) return 0; memcpy (tmp, buf_global, glen); memcpy (tmp+glen, format, flen); tmp[flen+glen] = 0;