diff options
| author | frosty <gabriel@bwaaa.monster> | 2026-08-12 15:40:41 -0400 |
|---|---|---|
| committer | frosty <gabriel@bwaaa.monster> | 2026-08-12 15:40:41 -0400 |
| commit | 10d44e7ff547a806e4bf109e7aadd48488ddc9f0 (patch) | |
| tree | 2c558733c05cf3b33d6d68627d0b52fe89988985 /src/Scraping | |
| parent | f20d8f711588a1918a6d75b99b0e11d745ca8395 (diff) | |
| download | omnisearch-10d44e7ff547a806e4bf109e7aadd48488ddc9f0.tar.gz | |
fix: improvements allocation safety and string processing
Diffstat (limited to 'src/Scraping')
| -rw-r--r-- | src/Scraping/Scraping.c | 14 |
1 files changed, 9 insertions, 5 deletions
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, |
