This part of code handles case when data in ring buffer are wrapped. In that case str is not a string so we shall not use asprintf but memcpy --- src/shared/hfp.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/shared/hfp.c b/src/shared/hfp.c index f5a812d..f11f02c 100644 --- a/src/shared/hfp.c +++ b/src/shared/hfp.c @@ -447,7 +447,15 @@ static void process_input(struct hfp_gw *hfp) return; *ptr = '\0'; - count = asprintf(&ptr, "%s%s", str, str2); + + count = len2 + len; + ptr = malloc(count); + if (!ptr) + return; + + memcpy(ptr, str, len); + memcpy(ptr + len, str2, len2); + free_ptr = true; str = ptr; } else { -- 1.8.4 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html