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);
 }