Diff between ee9dc0d40d4ff64d5576310e22dd95c880011c67 and 7f26eab8eb1977dec9e9e1b0d96aa999bfe18528
Changed Files
| File | Additions | Deletions | Status |
| src/shared/hfp.c | +3 | -1 | modified |
Full Patch
diff --git a/src/shared/hfp.c b/src/shared/hfp.c
index 36c8c3e..196e777 100644
--- a/src/shared/hfp.c
+++ b/src/shared/hfp.c
@@ -381,6 +381,7 @@ static void process_input(struct hfp_gw *hfp)
{
char *str, *ptr;
size_t len, count;
+ bool free_ptr = false;
str = ringbuf_peek(hfp->read_buf, 0, &len);
if (!str)
@@ -407,6 +408,7 @@ static void process_input(struct hfp_gw *hfp)
*ptr = '\0';
count = asprintf(&ptr, "%s%s", str, str2);
+ free_ptr = true;
str = ptr;
} else {
count = ptr - str;
@@ -424,7 +426,7 @@ static void process_input(struct hfp_gw *hfp)
len = ringbuf_drain(hfp->read_buf, count + 1);
- if (str == ptr)
+ if (free_ptr)
free(ptr);
}