From 10d44e7ff547a806e4bf109e7aadd48488ddc9f0 Mon Sep 17 00:00:00 2001 From: frosty Date: Wed, 12 Aug 2026 15:40:41 -0400 Subject: fix: improvements allocation safety and string processing --- src/Scraping/Scraping.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/Scraping') diff --git a/src/Scraping/Scraping.c b/src/Scraping/Scraping.c index 5c51ca5..9c4ff57 100644 --- a/src/Scraping/Scraping.c +++ b/src/Scraping/Scraping.c @@ -214,13 +214,17 @@ int setup_job(ScrapeJob *job, CURLM *multi_handle) { return -1; } - for (char *p = encoded_query + strlen(encoded_query) - 3; p >= encoded_query; - p--) { - if (p[0] == '%' && p[1] == '2' && p[2] == '0') { - *p = '+'; - memmove(p + 1, p + 3, strlen(p + 3) + 1); + char *read = encoded_query; + char *write = encoded_query; + while (*read) { + if (read[0] == '%' && read[1] == '2' && read[2] == '0') { + *write++ = '+'; + read += 3; + } else { + *write++ = *read++; } } + *write = '\0'; char *full_url = build_search_url(job->engine->base_url, job->engine->page_param, -- cgit v1.3