diff options
author | Mole Shang <[email protected]> | 2024-03-01 00:34:19 +0800 |
---|---|---|
committer | Mole Shang <[email protected]> | 2024-03-01 22:30:12 +0800 |
commit | 6d9c1c8396ef374dce59d4c95199d0155a6fdfa3 (patch) | |
tree | a3f661195ccbf01c04aa322ea6b8193c72f66539 /src/extractors | |
parent | 749d02bb3474592613d22736615f7530fa420b78 (diff) | |
download | hinata-6d9c1c8396ef374dce59d4c95199d0155a6fdfa3.tar.gz hinata-6d9c1c8396ef374dce59d4c95199d0155a6fdfa3.tar.bz2 hinata-6d9c1c8396ef374dce59d4c95199d0155a6fdfa3.zip |
tree-wide: fix uaf bugs
Diffstat (limited to 'src/extractors')
-rw-r--r-- | src/extractors/bilibili.c | 13 | ||||
-rw-r--r-- | src/extractors/extractor.c | 8 | ||||
-rw-r--r-- | src/extractors/haokan.c | 4 | ||||
-rw-r--r-- | src/extractors/youku.c | 14 |
4 files changed, 18 insertions, 21 deletions
diff --git a/src/extractors/bilibili.c b/src/extractors/bilibili.c index c4a628f..6112bef 100644 --- a/src/extractors/bilibili.c +++ b/src/extractors/bilibili.c @@ -381,7 +381,7 @@ static int download(Bilibili_options *bilibili_options) { get(bilibili_options->api, &resp); if (get_dash(resp, &dash)) { LOG("Bilibili", "Get dash failed."); - free_and_nullify((void **)&resp); + free_and_nullify(resp); dash_cleanup(&dash); return 1; }; @@ -414,7 +414,6 @@ static int download(Bilibili_options *bilibili_options) { } set_str_element(&callback_struct, 1, videofn); add_url(video->baseUrl, NULL, videofn, NULL, NULL); - free_and_nullify((void **)&videofn); } { @@ -429,10 +428,8 @@ static int download(Bilibili_options *bilibili_options) { } set_str_element(&callback_struct, 2, audiofn); add_url(audio->baseUrl, NULL, audiofn, &bilibili_merge, &callback_struct); - free_and_nullify((void **)&audiofn); } - free_and_nullify((void **)&filename); - free_and_nullify((void **)&resp); + free_and_nullify(resp); dash_cleanup(&dash); return 0; } @@ -481,18 +478,18 @@ void bilibili_extract(struct options *options) { DEBUG_PRINT("title: %s\n", bilibili_options.title); if (generate_api(&bilibili_options, 127)) { - free_and_nullify((void **)&bilibili_options.api); + free_and_nullify(bilibili_options.api); multipage_cleanup(&multipage_struct); return; } DEBUG_PRINT("Generated API: %s\n", bilibili_options.api); if (download(&bilibili_options)) { - free_and_nullify((void **)&bilibili_options.api); + free_and_nullify(bilibili_options.api); multipage_cleanup(&multipage_struct); return; } - free_and_nullify((void **)&bilibili_options.api); + free_and_nullify(bilibili_options.api); multipage_cleanup(&multipage_struct); } diff --git a/src/extractors/extractor.c b/src/extractors/extractor.c index 833686e..c38c1f2 100644 --- a/src/extractors/extractor.c +++ b/src/extractors/extractor.c @@ -12,10 +12,10 @@ Site_map site_map = {{{"www.bilibili.com", SITE_BILIBILI}, 3}; void options_cleanup(Options *options) { - free_and_nullify((void **)&options->URL); - free_and_nullify((void **)&options->path); - free_and_nullify((void **)&options->query); - free_and_nullify((void **)&options->pagedata); + free_and_nullify(options->URL); + free_and_nullify(options->path); + free_and_nullify(options->query); + free_and_nullify(options->pagedata); } int extract(void *v) { diff --git a/src/extractors/haokan.c b/src/extractors/haokan.c index e2a8aef..f289c3e 100644 --- a/src/extractors/haokan.c +++ b/src/extractors/haokan.c @@ -38,8 +38,8 @@ void haokan_extract(Options *options) { end: free_str_array(&results); - free_and_nullify((void **)&filename); - free_and_nullify((void **)&videoURL); + free_and_nullify(filename); + free_and_nullify(videoURL); return; } free_str_array(&results); diff --git a/src/extractors/youku.c b/src/extractors/youku.c index 4e5bc47..e8fa0a5 100644 --- a/src/extractors/youku.c +++ b/src/extractors/youku.c @@ -67,9 +67,9 @@ static int parse_jsondata(cJSON *json, Youku_data *youku_data) { } static void youku_options_cleanup(Youku_options *youku_options) { - free_and_nullify((void **)&youku_options->vid); - free_and_nullify((void **)&youku_options->utid); - free_and_nullify((void **)&youku_options->api); + free_and_nullify(youku_options->vid); + free_and_nullify(youku_options->utid); + free_and_nullify(youku_options->api); cJSON_Delete(youku_options->json); } @@ -147,13 +147,13 @@ void youku_extract(Options *options) { char *resp = NULL; if (get(youku_options.api, &resp)) { LOG("Youku", "Get API data failed.\n"); - free_and_nullify((void **)&resp); + free_and_nullify(resp); goto end; } // DEBUG_PRINT("resp: %s\n", resp); youku_options.json = cJSON_Parse(resp); - free_and_nullify((void **)&resp); + free_and_nullify(resp); Youku_data youku_data = {0}; if (parse_jsondata(youku_options.json, &youku_data)) { LOG("Youku", "Parse jsondata failed.\n"); @@ -170,8 +170,8 @@ void youku_extract(Options *options) { youku_data.height); set_str_element(&callback_struct, 1, filename); add_url(youku_data.m3u8_url, NULL, m3u8fn, youku_convert, &callback_struct); - free_and_nullify((void **)&m3u8fn); - free_and_nullify((void **)&filename); + free_and_nullify(m3u8fn); + free_and_nullify(filename); end: free_str_array(&results); |