diff --git a/src/shared/hfp.c b/src/shared/hfp.c
index 1be53fb..e481360 100644
--- a/src/shared/hfp.c
+++ b/src/shared/hfp.c
result->offset++;
while (data[result->offset] != '\0' && data[result->offset] != '"') {
- if (i < len)
- buf[i++] = data[result->offset];
+ if (i == len)
+ return false;
+
+ buf[i++] = data[result->offset];
result->offset++;
}
- if (i < len)
- buf[i++] = '\0';
+ if (i == len)
+ return false;
+
+ buf[i] = '\0';
if (data[result->offset] == '"')
result->offset++;
while (data[result->offset] != '\0' && data[result->offset] != ','
&& data[result->offset] != ')') {
- if (i < len)
- buf[i++] = data[result->offset];
+ if (i == len)
+ return false;
+
+ buf[i++] = data[result->offset];
result->offset++;
}
- if (i < len)
- buf[i++] = '\0';
+ if (i == len)
+ return false;
+
+ buf[i] = '\0';
next_field(result);