cmd: fix b_arglist_get_* functions not checking index parameter

This commit is contained in:
2025-07-28 22:17:19 +01:00
parent f94cff5eef
commit 04f99a84d5

View File

@@ -698,6 +698,12 @@ b_status b_arglist_get_string(
b_arglist_iterator it = {0};
b_arglist_iterator_begin(args, opt_id, arg_id, &it);
while (b_arglist_iterator_is_valid(&it)) {
if (index > 0) {
index--;
b_arglist_iterator_next(&it);
continue;
}
if (it.value && it.value->val_str) {
*out = it.value->val_str;
return B_SUCCESS;
@@ -716,6 +722,12 @@ b_status b_arglist_get_int(
b_arglist_iterator it = {0};
b_arglist_iterator_begin(args, opt_id, arg_id, &it);
while (b_arglist_iterator_is_valid(&it)) {
if (index > 0) {
index--;
b_arglist_iterator_next(&it);
continue;
}
if (it.value) {
*out = it.value->val_int;
return B_SUCCESS;
@@ -734,6 +746,12 @@ b_status b_arglist_get_uint(
b_arglist_iterator it = {0};
b_arglist_iterator_begin(args, opt_id, arg_id, &it);
while (b_arglist_iterator_is_valid(&it)) {
if (index > 0) {
index--;
b_arglist_iterator_next(&it);
continue;
}
if (it.value && it.value->val_uint) {
*out = it.value->val_uint;
return B_SUCCESS;