From 6880087afe16d738867d6aedda88b73e4aefe843 Mon Sep 17 00:00:00 2001 From: Ryan Drake Date: Mon, 19 Oct 2026 12:07:44 -0700 Subject: [PATCH] Fix buffer underruns in getFrameSync() --- src/dsd_frame_sync.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/dsd_frame_sync.c b/src/dsd_frame_sync.c index cec602b..f38a991 100644 --- a/src/dsd_frame_sync.c +++ b/src/dsd_frame_sync.c @@ -165,7 +165,7 @@ getFrameSync (dsd_opts * opts, dsd_state * state) char synctest8[9]; //M17 char modulation[8]; char *synctest_p; - char synctest_buf[10240]; //what actually is assigned to this, can't find its use anywhere? + char synctest_buf[10240 + 48]; //history for sync matching; look-back window up to 48 bytes int lmin, lmax, lidx; //assign t_max value based on decoding type expected (all non-auto decodes first) @@ -214,7 +214,7 @@ getFrameSync (dsd_opts * opts, dsd_state * state) synctest20[20] = 0; modulation[7] = 0; //not initialized or terminated (unsure if this would be an issue or not) synctest_pos = 0; - synctest_p = synctest_buf + 10; + synctest_p = synctest_buf + 48; sync = 0; lmin = 0; lmax = 0; @@ -1388,7 +1388,7 @@ getFrameSync (dsd_opts * opts, dsd_state * state) { // buffer reset synctest_pos = 0; - synctest_p = synctest_buf; + synctest_p = synctest_buf + 48; noCarrier (opts, state); }