Proof Portal
Projects
jsonparser
ProbeLabs23 findings · 123 requirementsCompare findings
The compared side's slice of new, resolved and changed findings versus its base — read live from git.
Base
775a6cc4f0c7cf771170dc9460b671b2e42cecc6775a6cccommon ancestor of proof-demo
Needs attention1 error9 warnings
116/116 realizable123/123 meet policyverification complete: 123
Compared
775a6cc4f0c7cf771170dc9460b671b2e42cecc6775a6cc
Needs attention1 error9 warnings
116/116 realizable123/123 meet policyverification complete: 123
+0 new·−0 resolved·0 changed·23 unchanged
New (0)
Findings introduced by the compared side — its own slice of issues.
No new findings on the compared side.
Resolved (0)
Findings present at the base but gone on the compared side.
No findings resolved on the compared side.
Changed (0)
Same finding on both sides, with severity and/or status moved (old → new).
No findings changed severity or status.
▸Still open / unchanged (23)
Delete left dangling trailing comma on array/object element followed by whitespace+commaProblem reportDEFECT-260726-3PSJSet with array-index path component under an object parent produces malformed JSON output (silent corruption)Problem reportDEFECT-260726-MFPAEmpty-string key path component panics (hazard-sweep finding)Problem reportDEFECT-260726-QS2VUnescape lone-Unicode-surrogate mishandling synthesizes bogus non-BMP charsProblem reportDEFECT-260727-SNGTSet beyond-length array index on scalar array destroys all elements (SYS-REQ-110 violation)Problem reportDEFECT-260727-WWWYParseBoolean uses prefix match instead of exact equality — "trueish"/"falsehood" accepted as booleansKnown issueKI-11Set with array-index path component under an object parent produces malformed JSON outputKnown issueKI-3decodeSingleUnicodeEscape length guard too small — OOB read + panic on a truncated \uXX escapeKnown issueKI-5unescapeToUTF8Config length guard off-by-one — OOB panic reading in[1] on a lone trailing backslashKnown issueKI-6parseInt fast-path threshold off-by-one — 19-digit integers skip overflow check and wrap silentlyKnown issueKI-7decodeUnicodeEscape lone-high-surrogate guard reads in[6]/in[7] with a too-small length check — OOB panicKnown issueKI-8ArrayEach on non-array root emitted spurious callback before erroringProblem reportDEFECT-260727-ARR1Set on top-level array-index beyond length returns KeyPathNotFoundError (SYS-REQ-110 contract gap)Problem reportDEFECT-260727-T7P7arrayEachConfig empty-array sentinel checks for '}' instead of ']' — a valid `[]` is rejected as malformedKnown issueKI-10decodeUnicodeEscape lone low surrogate `\uDC00` is substituted with U+FFFD instead of a bogus code pointKnown issueKI-15Set on top-level array-index beyond length returns KeyPathNotFoundError instead of appendingKnown issueKI-4h2I upper-hex bound off-by-one — byte 'G' decodes as hex 16, so `\uGxxx` is silently acceptedKnown issueKI-9ParseInt("-") returns (0, nil) — silent false-success on sign-only inputProblem reportDEFECT-260726-3F95nextTokenConfig drops the tab from its whitespace set — parsing fails on tab-formatted JSONKnown issueKI-13unescapeToUTF8Config drops '/' from the accepted escapes — the valid JSON escape `\/` is rejected as malformedKnown issueKI-14Delete with no key path returns an empty, non-aliasing slice (root-delete contract)Known issueKI-16ParseInt("-") returns (0, nil) — silent false-success on sign-only inputKnown issueKI-2arrayEachConfig empty-input guard returns the wrong documented error type (MalformedJsonError vs MalformedObjectError)Known issueKI-12
Comparing findings for jsonparser. Requirement coverage is intentionally not shown here — see Requirements for coverage.