60 lines
1.9 KiB
Diff
60 lines
1.9 KiB
Diff
From b1135f7e81ddb1889399800037891cf0df58f443 Mon Sep 17 00:00:00 2001
|
|
From: Bin Hu <hubin73@huawei.com>
|
|
Date: Sat, 26 Mar 2022 14:38:52 +0800
|
|
Subject: [PATCH 6/6] return error code when metalink file misses required file
|
|
attributes
|
|
|
|
Signed-off-by: Bin Hu <hubin73@huawei.com>
|
|
---
|
|
lib/metalink_pstate.c | 2 +-
|
|
lib/metalink_pstate_v3.c | 4 ++++
|
|
lib/metalink_pstate_v4.c | 4 ++++
|
|
3 files changed, 9 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/lib/metalink_pstate.c b/lib/metalink_pstate.c
|
|
index 3078338..49f48ba 100644
|
|
--- a/lib/metalink_pstate.c
|
|
+++ b/lib/metalink_pstate.c
|
|
@@ -121,7 +121,7 @@ void initial_state_start_fun(metalink_pstm_t* stm,
|
|
metalink_pstm_enter_metalink_state_v4(stm);
|
|
} else {
|
|
metalink_pctrl_set_version(stm->ctrl, METALINK_VERSION_UNKNOWN);
|
|
- metalink_pstm_enter_skip_state(stm);
|
|
+ error_handler(stm, METALINK_ERR_NAMESPACE_ERROR);
|
|
}
|
|
} else {
|
|
metalink_pstm_enter_skip_state(stm);
|
|
diff --git a/lib/metalink_pstate_v3.c b/lib/metalink_pstate_v3.c
|
|
index 7a3c25a..129a54d 100644
|
|
--- a/lib/metalink_pstate_v3.c
|
|
+++ b/lib/metalink_pstate_v3.c
|
|
@@ -53,6 +53,10 @@ void metalink_state_end_fun_v3(metalink_pstm_t* stm,
|
|
const char* name, const char* ns_uri,
|
|
const char* characters)
|
|
{
|
|
+ if(!stm->ctrl->metalink->files || !(*stm->ctrl->metalink->files)) {
|
|
+ error_handler(stm, METALINK_ERR_MISSING_REQUIRED_ATTR);
|
|
+ return;
|
|
+ }
|
|
metalink_pstm_enter_fin_state(stm);
|
|
}
|
|
|
|
diff --git a/lib/metalink_pstate_v4.c b/lib/metalink_pstate_v4.c
|
|
index f096d97..36d8a09 100644
|
|
--- a/lib/metalink_pstate_v4.c
|
|
+++ b/lib/metalink_pstate_v4.c
|
|
@@ -163,6 +163,10 @@ void metalink_state_end_fun_v4(metalink_pstm_t* stm,
|
|
error_handler(stm, r);
|
|
return;
|
|
}
|
|
+ if(!stm->ctrl->metalink->files || !(*stm->ctrl->metalink->files)) {
|
|
+ error_handler(stm, METALINK_ERR_MISSING_REQUIRED_ATTR);
|
|
+ return;
|
|
+ }
|
|
metalink_pstm_enter_fin_state(stm);
|
|
}
|
|
|
|
--
|
|
2.28.0.windows.1
|
|
|