summaryrefslogtreecommitdiff
path: root/src/extractors
diff options
context:
space:
mode:
authorMole Shang <[email protected]>2024-03-01 00:34:19 +0800
committerMole Shang <[email protected]>2024-03-01 22:30:12 +0800
commit6d9c1c8396ef374dce59d4c95199d0155a6fdfa3 (patch)
treea3f661195ccbf01c04aa322ea6b8193c72f66539 /src/extractors
parent749d02bb3474592613d22736615f7530fa420b78 (diff)
downloadhinata-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.c13
-rw-r--r--src/extractors/extractor.c8
-rw-r--r--src/extractors/haokan.c4
-rw-r--r--src/extractors/youku.c14
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);