More range checks
This is a second patch adding more range checks where appropriate.
Change-Id: Ie169efe8924153c9cc11e4472a1b07b8d04efb3b
Signed-off-by: Ed Tanous <ed@tanous.net>
diff --git a/cper-utils.c b/cper-utils.c
index 6c76156..11fdbcb 100644
--- a/cper-utils.c
+++ b/cper-utils.c
@@ -425,3 +425,24 @@
return 1;
}
+
+void add_untrusted_string(json_object *ir, const char *field_name,
+ const char *str, int len)
+{
+ int fru_text_len = 0;
+ for (; fru_text_len < len; fru_text_len++) {
+ char c = str[fru_text_len];
+ if (c < 0) {
+ fru_text_len = -1;
+ break;
+ }
+ if (c == '\0') {
+ break;
+ }
+ }
+ if (fru_text_len >= 0) {
+ json_object_object_add(
+ ir, field_name,
+ json_object_new_string_len(str, fru_text_len));
+ }
+}