[PATCH 2/7] imd: string returned from imd_string_data should be const

Sascha Hauer s.hauer at pengutronix.de
Tue Mar 29 01:50:49 PDT 2016


imd_string_data() returns the original data, so the string should be
const.

Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 common/imd.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/common/imd.c b/common/imd.c
index acaa23f..9bd1563 100644
--- a/common/imd.c
+++ b/common/imd.c
@@ -193,7 +193,7 @@ static uint32_t imd_name_to_type(const char *name)
 	return IMD_TYPE_INVALID;
 }
 
-static char *imd_string_data(struct imd_header *imd, int index)
+static const char *imd_string_data(struct imd_header *imd, int index)
 {
 	int i, total = 0, l = 0;
 	int len = imd_read_length(imd);
@@ -306,10 +306,15 @@ int imd_command(int argc, char *argv[])
 		}
 
 		if (imd_is_string(type)) {
-			if (strno >= 0)
-				str = imd_string_data(imd, strno);
-			else
+			if (strno >= 0) {
+				const char *s = imd_string_data(imd, strno);
+				if (s)
+					str = strdup(s);
+				else
+					str = NULL;
+			} else {
 				str = imd_concat_strings(imd);
+			}
 
 			if (!str)
 				return -ENODATA;
-- 
2.7.0




More information about the barebox mailing list