Add runtime type checks to f_string_indexes
This fixes CVE-2026-39956.
This commit is contained in:
1 parent
e47e56d226
commit
fdf8ef0f08
2 files changed
+17
No files matched your search
@@ -1306,6 +1306,14 @@ static jv f_string_explode(jq_state *jq, jv a) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static jv f_string_indexes(jq_state *jq, jv a, jv b) {
|
static jv f_string_indexes(jq_state *jq, jv a, jv b) {
|
||||||
|
if (jv_get_kind(a) != JV_KIND_STRING) {
|
||||||
|
jv_free(b);
|
||||||
|
return type_error(a, "cannot be searched, as it is not a string");
|
||||||
|
}
|
||||||
|
if (jv_get_kind(b) != JV_KIND_STRING) {
|
||||||
|
jv_free(a);
|
||||||
|
return type_error(b, "is not a string");
|
||||||
|
}
|
||||||
return jv_string_indexes(a, b);
|
return jv_string_indexes(a, b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1549,6 +1549,15 @@ split("")
|
|||||||
"xababababax"
|
"xababababax"
|
||||||
[1,7,[1,3,5,7]]
|
[1,7,[1,3,5,7]]
|
||||||
|
|
||||||
|
# _strindices is used by indices/1 but is callable
|
||||||
|
try _strindices("abc") catch .
|
||||||
|
123
|
||||||
|
"number (123) cannot be searched, as it is not a string"
|
||||||
|
|
||||||
|
try _strindices(123) catch .
|
||||||
|
"abc"
|
||||||
|
"number (123) is not a string"
|
||||||
|
|
||||||
# trim
|
# trim
|
||||||
# \u000b is vertical tab (\v not supported by json)
|
# \u000b is vertical tab (\v not supported by json)
|
||||||
map(trim), map(ltrim), map(rtrim)
|
map(trim), map(ltrim), map(rtrim)
|
||||||
|
|||||||
Reference in new issue
Block a user