Commit Graph

191 Commits

Author SHA1 Message Date
Jan Dubois
b0ba9589d7
Fix findInArray misuse on MappingNodes in equality and contains (#2645)
recurseNodeObjectEqual and containsObject both used findInArray to
locate keys in a MappingNode's Content array. findInArray steps by 1,
so it matches against both keys (even indices) and values (odd indices).

In recurseNodeObjectEqual, when a null key in the LHS matched a null
value in the RHS at the last position, rhs.Content[indexInRHS+1]
accessed an out-of-bounds index, causing a panic.

In containsObject, a %2 guard prevented the panic but introduced false
negatives: when a null value appeared before the actual null key,
findInArray returned the value's odd index, the guard rejected it, and
the function reported the key as missing.

Both functions now use findKeyInMap, which steps by 2 and compares only
key positions. The %2 guard in containsObject is removed.

Reproducer for the panic (recurseNodeObjectEqual):

    echo '? [{~: ~}]
    : v1
    ? [{2: ~}]
    : v2' | yq '. += .'

Reproducer for the false negative (containsObject):

    printf '? 1\n: ~\n? ~\n: x\n' | yq 'contains({~: "x"})'

Found by OSS-Fuzz via the lima project's FuzzEvaluateExpression target.
https://issues.oss-fuzz.com/issues/383860504

Signed-off-by: Jan Dubois <jan@jandubois.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 18:30:44 +10:00
Copilot
7d8d3ab902
Replace gopkg.in/op/go-logging.v1 with log/slog (#2635)
* Initial plan

* Replace gopkg.in/op/go-logging.v1 with log/slog

Co-authored-by: mikefarah <1151925+mikefarah@users.noreply.github.com>
Agent-Logs-Url: https://github.com/mikefarah/yq/sessions/aa9c12f4-21b9-4633-9868-6b56585b247f

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: mikefarah <1151925+mikefarah@users.noreply.github.com>
2026-03-26 20:41:54 +11:00
Mike Farah
6a965bc39a Bumping golint 2026-03-21 09:25:31 +11:00
Mike Farah
9e0c5fd3c9 Fixing escape charaters again 😢 #2517 2025-11-25 10:17:43 +11:00
Mike Farah
c716d157f2 Fixing parsing of escaped characters in strenv #2506 2025-11-16 09:22:21 +11:00
Mike Farah
3018396ed2 wip: fixing key order 2025-07-22 10:50:52 +10:00
Steven WdV
9c95a9f379
Unify reconstructAliasedMap & fixedReconstructAliasedMap 2025-07-20 14:59:17 +02:00
Mike Farah
23a7b173bf Fixing merge anchor key order 2025-07-19 15:27:44 +10:00
Mike Farah
0b7d4b799c Fixed CSV content starting with # issue #2076 2024-06-29 15:04:07 +10:00
Mike Farah
68aafb6a53 Handle numbers with underscores #2039 2024-06-16 11:09:52 +10:00
Mike Farah
9e9cb65ec0 Fixed CSV line break issue #1974 2024-03-12 10:22:35 +11:00
Mike Farah
e092329bf3 String interpolation! #1149 2024-03-05 14:10:12 +11:00
Mike Farah
72a78472af Added tostring #72 2024-03-05 10:40:55 +11:00
Mike Farah
010750daf6 Updated to latest golint 2024-01-11 13:17:34 +11:00
Mike Farah
4cf123fed5 Fixed to_entries[] 2023-12-12 15:44:34 +11:00
Mike Farah
13d1bbb45f
Generic ast (#1829)
Remove dependency on yaml.Node for internal AST representation. Yaml decoder is now just another decoder.
2023-10-18 12:11:53 +11:00
Mike Farah
d113344abf Added tonumber support #71 2023-10-05 15:15:01 +11:00
Mike Farah
ee900ec997 Added kind operator 2023-10-02 14:43:12 +11:00
TJ Miller
a466821e8f
Added divide and modulo operators (#1593)
* Added divide operator (#49)

* Tidy up divide operator logic

* Added modulo operator

* Fix divide test typo

* Add divide by zero test

* Handle int modulo by 0 and add tests

* Tidy up divide/modulo operator node creation

* Fix linter errors
2023-03-15 20:14:23 +11:00
Robert Brennan
9539877ff6
Add filter operation (#1588)
* add filter operation

* add tests

* add tests

* revert debug

* simplify filter

* fix tests

* remove logs
2023-03-09 10:30:47 +11:00
Mike Farah
3f1f66a8ee Fixed merged anchor reference problem #1482 2023-03-01 13:45:35 +11:00
Mike Farah
62d167c141
Variable loop - Fixes #1566 (#1577)
* Variable loop wip

* Variable loop wip

* Variable loop wip

* Variable loop wip

* Fixed variable operator to work like jq
2023-02-28 16:40:38 +11:00
Mike Farah
d17fd9424e Added shuffle command #1503 2023-02-11 05:08:20 +11:00
Mike Farah
915ab69922 Added to_unix operator 2023-02-02 12:56:16 +11:00
Mike Farah
75920481b1 Added from_unix operator #1535 2023-02-02 12:42:36 +11:00
Mike Farah
d7da0cca3c Fixed value operator bug #1515 2023-01-12 15:11:45 +11:00
Mike Farah
f9a8ba91e4 Preparing release 2022-11-28 08:34:58 +11:00
Mike Farah
cb609a1886 Fixed bad line entry for #1422 2022-11-15 11:35:31 +11:00
Mike Farah
04847502bf Can use expressions in slice #1419 2022-11-10 18:03:18 +11:00
Jingyu
91b3fb2af3
fix lib.go handled error (#1418) 2022-11-09 21:36:53 +11:00
Mike Farah
bd5e5dc965 Array to map operator for #1415 2022-11-08 13:40:00 +11:00
Mike Farah
c887042a1b Fixing null csv bug #1404 2022-10-30 22:02:08 +11:00
Mike Farah
d99614f55a
Slice array (#1403) 2022-10-29 18:15:21 +11:00
Mike Farah
880397d549
Refactored decoder responsibilities (#1402)
- improved comment handling
- yaml decoder now responsible for leading content work around
2022-10-28 14:16:46 +11:00
Mike Farah
24bbffd71e xml prefs should be part of API 2022-10-25 14:27:16 +11:00
Mike Farah
6d6b693fb3
Added XML processing instructions and directive support (#1396) 2022-10-24 10:09:42 +11:00
Mike Farah
b5b81abb90 Added DELPATHS operator 2022-10-05 20:09:53 +11:00
Mike Farah
da3f3b93b4 Added SETPATH operator 2022-10-05 14:12:08 +11:00
Mike Farah
55a7fdfd8a Added is_key operator 2022-09-30 10:27:35 +10:00
Mike Farah
b1a40a9fb7 Bumped go compiler; bumped quality tools 2022-08-29 14:13:15 +10:00
Mike Farah
a696dceea4 Added string trim operator 2022-08-08 13:35:57 +10:00
Mike Farah
c8815f5ab9
Csv decoder (#1290)
* WIP: adding CSV decoder

* Adding CSV decoder

* Added CSV roundtrip

* Fixing from review
2022-08-01 10:28:34 +10:00
Mike Farah
b9a1ef89fe
Added NDJSON decoder (#1281) 2022-07-27 12:26:22 +10:00
Mike Farah
03ba38eaff
Using new lexer by alecthomas! (#1270) 2022-07-13 14:45:28 +10:00
Mike Farah
86c2b03630 Added error operator for custom validation #1259 2022-06-25 12:46:24 +10:00
Mike Farah
be05df03b5 Fixing usage of quoted numeric keys #1247 2022-06-23 19:22:11 +10:00
rndmit
b9309a42a4
XML decoder additions (#1239)
* Add xml-keep-namespace and xml-raw-token features

* Add tests

* Change flags usage strings

* Append docs
2022-06-15 09:40:31 +10:00
Mike Farah
fbe49c3700 Added colors to json output #1208 2022-05-22 21:19:59 +10:00
Mike Farah
72cdde78f6 Fixing issues found by codeql 2022-05-06 13:46:14 +10:00
Mike Farah
bbeae229ca Disable strict XML parsing by default #1155 2022-03-28 14:05:10 +11:00