Back to projects

Reported bugs

Only bugs with public reports appear in this table.

Not yet reported
We found the bug. We'll report it to the maintainers only after human review.
Reported
We reported the bug to the maintainers. They haven't confirmed it yet.
Confirmed
A maintainer agrees it's a bug.
Fixed
The bug has been fixed.
SeverityCriticalHighMediumLowInfoNot rated

Latest feed unavailable or not fully assessed; showing the last reviewed public snapshot (2026-11-05).

Filter
Sort
SeverityBugProjectStatusReported
lowchacha20poly1305_encrypt and _decrypt truncate size_t lengths to 32 bitsLinux kernel (WireGuard) ยท Memory-safety bugโ˜… 254,426 stars

If one call gets 4 GiB or more, only the first (length mod 4 GiB) bytes are encrypted and authenticated; the rest stays plaintext and unauthenticated.

Full details and maintainer reply
Linux kernel (WireGuard)Fixed
lowpoly1305_update wraps buflen plus nbytes in 32 bits and writes out of boundsLinux kernel (WireGuard) ยท Memory-safety bugโ˜… 254,426 stars

If one poly1305_update call has nbytes at least 2^32 minus buflen, with 1 to 15 bytes buffered, it writes about 4 GiB out of bounds. The write corrupts memory over the 16-byte buffer of poly1305_desc_ctx, and no in-tree caller can do that.

Full details and maintainer reply
Linux kernel (WireGuard)Fixed
mediumgetByRole name filter misses meter and progress elements labelled by a label tagPlaywright ยท Wrong-result bugโ†“ 472M / moโ˜… 99,334 stars

The accessible name of meter and progress ignores an associated label, so getByRole with a name returns zero matches while getByLabel finds the same element.

Full details and maintainer reply
PlaywrightFixed
lowSearch input with a broken list attribute gets combobox role, not searchboxPlaywright ยท Wrong-result bugโ†“ 472M / moโ˜… 99,334 stars

A search input whose list attribute points to no datalist gets the combobox role, unlike Chrome's searchbox role. So getByRole searchbox finds nothing, while the combobox role matches the input by mistake.

Full details and maintainer reply
PlaywrightFixed
highThe listpack reader fails an assert on some entries written before 8.8Redis ยท Crashโ˜… 77,194 stars

Redis 8.8 changes the length encoding of 16383, 2097151 and 268435455 byte entries. Older listpacks with these entries fail validation, and the reader asserts.

Full details and maintainer reply
RedisFixed
highcy.contains with a g or y regex flag misses matching elementsCypress ยท Wrong-result bugโ†“ 24M / moโ˜… 51,021 stars

A regex with the global or sticky flag keeps lastIndex between candidate elements, so the command tests only about half of the matching elements. The command can pick the wrong element or time out while matches exist.

Full details and maintainer reply
CypressReported
lowselectFile on a label fails when its for id contains dots, spaces or colonsCypress ยท API-contract bugโ†“ 24M / moโ˜… 51,021 stars

The label's for value enters a CSS selector unescaped, so ids with dots or spaces resolve to nothing and selectFile reports an unhelpful error. An id with a colon throws a raw selector syntax error.

Full details and maintainer reply
CypressReported
lowcy.contains cannot find submit buttons by a partial word of their valueCypress ยท API-contract bugโ†“ 24M / moโ˜… 51,021 stars

Submit inputs match only whole words in their value, while other elements match any substring. cy.contains('User') misses an input whose value is Username, so the command times out.

Full details and maintainer reply
CypressReported
mediumNTLM auth block without a domain line makes a valid file fail to parseBruno ยท Crashโ†“ 1.1M / moโ˜… 48,177 stars

If an auth:ntlm block has a username and password but no domain line, the parser throws a TypeError on parse. The domain lookup checks the password key but reads the domain key.

Full details and maintainer reply
BrunoFixed
lowcurl's IPv6 parser drops the zone id's first two digits after %25curl ยท Wrong-result bugโ˜… 43,392 stars

A URL with a link-local address and a zone id that starts with 25 after an encoded percent sign loses those two characters. curl then uses another interface's zone id, or fails to find one.

Full details and maintainer reply
curlFixed
lowcurl_url_get returns OK with a NULL string for an empty part under CURLU_URLENCODEcurl ยท API-contract bugโ˜… 43,392 stars

An empty user name with CURLU_URLENCODE returns CURLUE_OK and a NULL string. A caller that uses the string then dereferences NULL.

Full details and maintainer reply
curlFixed
mediumCSS escape of a non-ASCII first digit picks the wrong ASCII code pointSelenium ยท Wrong-result bugโ†“ 35M / moโ˜… 34,578 stars

By.className and By.id escape a Unicode digit at the start such as an Arabic-Indic five as the ASCII five. The selector for that class matches the same element as the ASCII class name.

Full details and maintainer reply
SeleniumFixed
mediumBy.name with % throws a format exception or builds a wrong selectorSelenium ยท API-contract bugโ†“ 35M / moโ˜… 34,578 stars

By.name runs String.format twice, so a name such as 100% throws UnknownFormatConversionException, and a name like a%db throws IllegalFormatConversionException at construction time.

Full details and maintainer reply
SeleniumFixed
mediumThe Phoenix ranker lets candidates attend to their neighboursx-algorithm ยท Wrong-result bugโ˜… 34,085 stars

If history has 127 or 128 events with the QUICKSTART settings, the last key block contains candidates. A candidate logit then changes when other candidates in the request change.

Full details and maintainer reply
x-algorithmReported
mediumThe author pool sort panics on a NaN scorex-algorithm ยท Crashโ˜… 34,085 stars

If one score is NaN, the comparison function breaks the total order. On Rust 1.96.0, a 22-item input makes the ranking operation panic.

Full details and maintainer reply
x-algorithmReported
mediumThe request drops the viewer's muted keywords when viewer data failsx-algorithm ยท Wrong-result bugโ˜… 34,085 stars

If the viewer data fetch errors or takes over 200 ms, the request uses default viewer data. The request then shows posts with muted keywords.

Full details and maintainer reply
x-algorithmReported
highThe following timeline stops paging when all posts of a page are removedx-algorithm ยท Wrong-result bugโ˜… 34,085 stars

If all posts of a fetched page are removed, the cursor does not advance. The next request returns the same page, so older posts stay unreachable.

Full details and maintainer reply
x-algorithmReported
mediumGauge max reports 0 when every sample is negativek6 ยท Wrong-result bugโ˜… 32,144 stars

A gauge max starts at 0 and is never guarded for the first sample, so an all-negative series reports max 0 in summaries and JSON exports.

Full details and maintainer reply
k6Fixed
lowngx_inet6_addr rejects valid IPv6 forms and accepts malformed colon patternsnginx ยท API-contract bugโ˜… 32,053 stars

Texts such as 1:2:3:4:5:6:7:: and ::ffff:255.255.255.255 are rejected. Texts such as :1:2:3:4:5:6:7:8 and 1::2: are accepted.

Full details and maintainer reply
nginxConfirmed (fix in progress)
lownginx PROXY v1 reader accepts malformed addresses and ports and reports themnginx ยท API-contract bugโ˜… 32,053 stars

Heading zeroes, out-of-range numbers and empty addresses pass into $proxy_protocol_addr. The specification says such a header must abort the connection.

Full details and maintainer reply
nginxConfirmed
lowWPACKET_quic_write_vlint() crashes on a null WPACKETOpenSSL ยท Crashโ†“ 235k / moโ˜… 31,192 stars

If a caller uses a null WPACKET with WPACKET_quic_write_vlint(), the encoder writes through NULL. The process crashes with a segmentation fault.

Full details and maintainer reply
OpenSSLConfirmed (fix in progress)
lowThe QUIC length-prefixed reader does not set the sub-packet message startOpenSSL ยท Wrong-result bugโ†“ 235k / moโ˜… 31,192 stars

If code calls PACKET_get_quic_length_prefixed(), the sub-packet message start is not set. PACKET_msg_start() then returns NULL or an unrelated pointer.

Full details and maintainer reply
OpenSSLFixed
mediumAsync requests logged as None lower all reported response-time percentilesLocust ยท Wrong-result bugโ†“ 9.4M / moโ˜… 28,262 stars

Requests logged with response_time None, the documented async pattern, count in the percentile denominator but not in the histogram. This lowers every p50 to p99.9 toward the minimum, while median and average stay correct.

Full details and maintainer reply
LocustFixed
lowThe stream decoder accepts a frame shorter than its declared content sizezstd ยท API-contract bugโ†“ 197k / moโ˜… 28,167 stars

If a frame ends with an empty last block, the stream decoder accepts it with fewer bytes than declared. The one-shot decoder rejects the same frame.

Full details and maintainer reply
zstdReported
lowZSTD_getDictID_fromFrame returns the magic variant of a skippable frame as a dictionary IDzstd ยท API-contract bugโ†“ 197k / moโ˜… 28,167 stars

A caller that asks a skippable frame for its dictionary ID gets its magic variant. The API documents 0 for a frame that is not Zstandard.

Full details and maintainer reply
zstdReported
lowOne-shot zstd decoding rejects skippable frames with 4 GiB of user datazstd ยท API-contract bugโ†“ 197k / moโ˜… 28,167 stars

RFC 8878 allows up to 2^32 - 1 bytes of user data, but a 32-bit sum makes one-shot decoding refuse the last 8 sizes. Streaming decoding skips the frame.

Full details and maintainer reply
zstdReported
mediumVirtual sensor routes use /sensors, not the spec's /sensor pathAppium ยท API-contract bugโ†“ 4.7M / moโ˜… 22,183 stars

Get, update and delete calls at the W3C spec path /sensor/{type} return not found. The server registers virtual sensor routes under the plural /sensors path, so spec-conformant clients cannot reach them.

Full details and maintainer reply
AppiumFixed
mediumTimeout errors return HTTP 408 instead of the spec's 500, so clients may retryAppium ยท API-contract bugโ†“ 4.7M / moโ˜… 22,183 stars

Implicit wait, element find and async script timeouts answer with 408 Request Timeout. Keep-alive clients and proxies may replay a 408 by themselves, so the timed-out command can run twice.

Full details and maintainer reply
AppiumFixed
lowJTD parser rejects valid JSON unicode escapes inside enum string valuesAjv ยท API-contract bugโ†“ 1.6B / moโ˜… 14,871 stars

If a string spells an allowed enum value with a unicode escape, such as \u0041 for A, the parser fails with an unexpected token error. The same value typed as plain text parses fine.

Full details and maintainer reply
AjvReported
mediumcoturn reads past the message when an HTTP Content-Length value is emptycoturn ยท Memory-safety bugโ˜… 14,538 stars

A message whose last header is an empty Content-Length makes is_http read past the message end, before authentication. The bytes read change only a length that the callers then reject.

Full details and maintainer reply
coturnReported
highcoturn writes one byte past the STUN buffer when it pads a ChannelData messagecoturn ยท Memory-safety bugโ˜… 14,538 stars

With padding on, a payload of 65501 to 65503 bytes passes the length check. The pad then writes one byte past the buffer.

Full details and maintainer reply
coturnConfirmed (fix in progress)
mediumcoturn never adds MESSAGE-INTEGRITY to a short-term credential messagecoturn ยท API-contract bugโ˜… 14,538 stars

A missing ! makes the builder return false after each successful USERNAME add. The message then fails its integrity check.

Full details and maintainer reply
coturnReported
mediumPillow Sun raster decoder ignores scan-line padding, so odd-width images decode shearedPillow ยท Wrong-result bugโ†“ 436M / moโ˜… 13,970 stars

Byte-encoded Sun raster images with an odd scan-line byte count read the padding as the next row's first pixel. Every such file decodes to wrong pixels without an error.

Full details and maintainer reply
PillowReported
lowSectionHeader.from_params raises KeyError for the invalid header typeRobot Framework ยท Crashโ†“ 3.9M / moโ˜… 11,981 stars

The default name table has six entries, but the code handles more than six types. Zip truncates, so the INVALID HEADER type gets no name and rebuilds from parsed invalid headers fail with KeyError.

Full details and maintainer reply
Robot FrameworkFixed
mediumCancelled FPY sequence still runs its queued directiveF Prime ยท Concurrency bugโ˜… 11,856 stars

A directive queued before a CANCEL runs after the sequencer reports the cancel, so a command can reach its target. A stale stack directive can set an out-of-range stack size, and the window is narrow but deterministic once hit.

Full details and maintainer reply
F PrimeFixed
mediumEquality match treats distinct integers above 2^53 as equalKarate ยท Soundness bugโ˜… 9,005 stars

Numeric match compares values as doubles, so large Long or BigInteger values that differ by one look equal. Values such as snowflake ids or balances pass an EQUALS assertion and fail NOT_EQUALS.

Full details and maintainer reply
KarateFixed
mediumcontains only deep ignores duplicate counts, so unequal multisets passKarate ยท Soundness bugโ˜… 9,005 stars

On equal-length arrays with different duplicate counts, contains only deep passes where contains only fails. So a roles list with an extra admin entry can satisfy the assertion.

Full details and maintainer reply
KarateFixed
mediumNegated partial schema macro passes on a list whose element contains the schemaKarate ยท Soundness bugโ˜… 9,005 stars

The not-contains-partial macro uses exact matching for list elements. So an array with an element that matches only in part still passes, while the positive form passes on the same data.

Full details and maintainer reply
KarateFixed
mediumMultipart matcher with name and filename ignores the name constraintWireMock ยท Wrong-result bugโ˜… 7,418 stars

withName and withFileName write the same Content-Disposition key, so the second overwrites the first. A stub then accepts a part with the wrong form field name if the filename matches.

Full details and maintainer reply
WireMockFixed
mediumXPath boolean expressions always match, so stubs fire on false conditionsWireMock ยท Wrong-result bugโ˜… 7,418 stars

If a one-argument matchesXPath expression yields a boolean, such as count(//x) = 99 or 1 = 2, it always matches. Stubs then fire for documents that fail the condition.

Full details and maintainer reply
WireMockReported
highTypedArray toSorted on a subarray sorts from the start of the buffergoja ยท Wrong-result bugโ˜… 7,187 stars

A call to toSorted on a typed array view with a non-zero offset, such as subarray(3), sorts elements from the start of the underlying buffer. The result is wrong data on a common path, without an error.

Full details and maintainer reply
gojaFixed
mediumString split with an empty separator splits emoji into one piece instead of twogoja ยท Wrong-result bugโ˜… 7,187 stars

An empty separator makes split count characters outside the BMP as one element instead of two UTF-16 code units. The split length then disagrees with the string's own length.

Full details and maintainer reply
gojaFixed
mediumThe deflate stream at level 0 ends early when the data exceeds 4 GiBzlib ยท Data-loss bugโ˜… 7,187 stars

If level 0 gets Z_FINISH with more than 4 GiB of buffered and new input, a 32-bit sum wraps. The stream ends with most of the input unread.

Full details and maintainer reply
zlibFixed
mediumLarge negative decimal JSON numbers become -Infinity when read as floatREST Assured ยท Wrong-result bugโ˜… 7,147 stars

With default settings JsonPath picks float for negative non-integers beyond Float.MAX_VALUE, so -1e40 returns -Infinity while +1e40 stays a correct double.

Full details and maintainer reply
REST AssuredFixed
higharray.properties returns null for all elements when the first lacks propertiesREST Assured ยท Wrong-result bugโ˜… 7,147 stars

The Groovy-5 spread workaround only runs when the first array element has a properties key. So a GeoJSON feature list whose first feature lacks it returns null and drops every feature's data.

Full details and maintainer reply
REST AssuredFixed
lowXmlPath negative index on a hyphenated element name fails with an unclear errorREST Assured ยท API-contract bugโ˜… 7,147 stars

XmlPath with a hyphenated element name and a negative index, such as root.some-list[-1], throws a parameter list was not defined error. The hyphen is not escaped, and the error points at params() instead of that cause.

Full details and maintainer reply
REST AssuredFixed
lowrandomUuid produces UUIDs marked as version 0 instead of version 4Gatling ยท Wrong-result bugโ˜… 6,958 stars

The version bits of generated random UUIDs hold 0, so every value fails a version-4 check. Values remain random, but code that validates UUID versions rejects them.

Full details and maintainer reply
GatlingFixed
mediumsubstring(pattern).find(n) never finds a match when n is 1 or moreGatling ยท Wrong-result bugโ˜… 6,958 stars

substring(pattern).find(n) with n of 1 or more never finds the match, while find(0) and findAll work. Checks that capture a later occurrence fail.

Full details and maintainer reply
GatlingFixed
lowOut-of-range negative EL index throws an uncaught exception for arrays and java.util.ListGatling ยท Crashโ˜… 6,958 stars

A negative index whose magnitude exceeds the length, such as x(-5) on three elements, throws IndexOutOfBoundsException for arrays, java.util.List and tuples. Scala Seq and List return a clean failure.

Full details and maintainer reply
GatlingFixed
lowCompiler crashes with MatchError on an erroneous quoted pattern with an importScala 3 ยท Crashโ˜… 6,332 stars

An inline match in a non-inline method has a quoted pattern with an unresolved import. Error recovery then calls tpd.singleton on an error type, so the compiler crashes with MatchError instead of reporting the unresolved import.

Full details and maintainer reply
Scala 3Confirmed
lowCompiler aborts with AssertionError on a malformed context bound with a quoteScala 3 ยท Crashโ˜… 6,332 stars

Malformed context bounds with intersection types and a quoted expression trigger an AssertionError in TypeOps.dominators. The compiler then aborts in the typer phase, without a clean error report.

Full details and maintainer reply
Scala 3Reported
lowParser crashes when a line comment hides then in a for generator inside newScala 3 ยท Crashโ˜… 6,332 stars

A comment that hides the then keyword of an if inside a for generator within new arguments fails a position check. The compiler then aborts during parser error recovery.

Full details and maintainer reply
Scala 3Fixed
lowCompiler asserts on a duplicate enum name with simple and parametric casesScala 3 ยท Crashโ˜… 6,332 stars

The code declares enum E twice, once with a simple case K0 and once with a parametric case K0. This causes an AssertionError in typer instead of a duplicate definition error.

Full details and maintainer reply
Scala 3Fixed
mediumNested macro splices at depth 230 overflow the stack during inliningScala 3 ยท Crashโ˜… 6,332 stars

A recursive macro that splices itself compiles at depth 220 but raises StackOverflowError at depth 230 during the inlining phase, so valid code fails to compile.

Full details and maintainer reply
Scala 3Fixed
mediumErased context parameter before a normal one produces bytecode the JVM rejectsScala 3 ยท Crashโ˜… 6,332 stars

A method with an erased `using` parameter followed by a normal context parameter gets wrong local slot numbers, so the JVM throws VerifyError at runtime. The reversed order works.

Full details and maintainer reply
Scala 3Fixed
mediumCompiler asserts in erasure when an override uses an erased `using` clauseScala 3 ยท Crashโ˜… 6,332 stars

A generic trait method has an erased `using` clause before a type-parameter argument. An override of it triggers an AssertionError in erasure, so valid code fails to compile.

Full details and maintainer reply
Scala 3Fixed
lowCompiler asserts on exports of members from a cyclic opaque type companionScala 3 ยท Crashโ˜… 6,332 stars

An export of members of an opaque type companion with a self-referential alias triggers an AssertionError in Namer after the cyclic type error. The compiler does not make a clean exit.

Full details and maintainer reply
Scala 3Fixed
mediumThe callback stream accepts input that ends inside a submessageNanopb ยท Soundness bugโ†“ 420k / moโ˜… 5,602 stars

If the input ends inside a submessage, pb_decode() returns true and drops the rest. A buffer stream reports an error for the same input.

Full details and maintainer reply
NanopbConfirmed (fix in progress)
mediumThe pb_decode() function crashes on a message with a custom extension typeNanopb ยท Crashโ†“ 420k / moโ˜… 5,602 stars

If a message has an extension type with its own decode function, the decoder dereferences NULL. The crash happens before the custom function runs.

Full details and maintainer reply
NanopbFixed
lowVerilator rejects an undeclared data input of bufif and nmos gates with a plain enableVerilator ยท API-contract bugโ˜… 4,059 stars

When the enable of a bufif, notif, nmos or pmos gate is a plain identifier, Verilator rejects an undeclared data input. IEEE 1800 requires an implicit net there, as for and gates.

Full details and maintainer reply
VerilatorFixed
mediumCompiler aborts with an assertion when a generate block declares a classIcarus Verilog ยท Crashโ˜… 3,718 stars

If a valid class sits inside a generate block, iverilog fails an internal assertion and aborts. The same class at module scope compiles fine.

Full details and maintainer reply
Icarus VerilogFixed
mediumCompiler segfaults when it cannot resolve an enum value in its generate blockIcarus Verilog ยท Crashโ˜… 3,718 stars

If the same generate block declares and uses an enum, the compiler cannot resolve its value and segfaults. Declare the enum at module scope to avoid the crash.

Full details and maintainer reply
Icarus VerilogFixed
mediumbuf, not or tran gate with different output widths makes iverilog abortIcarus Verilog ยท Crashโ˜… 3,718 stars

If a buf, not or tran gate has outputs of different widths, an internal assertion fails and iverilog aborts without a normal width error.

Full details and maintainer reply
Icarus VerilogReported
mediumSimulator overflows its stack on a stable loop through a real or strength netIcarus Verilog ยท Crashโ˜… 3,718 stars

If a wire drives itself through bufif1, or a real variable assigns itself, vvp recurses. vvp recurses until it segfaults at time 0, even though the value never changes.

Full details and maintainer reply
Icarus VerilogFixed
lowThe compiler rejects a qualified name for a local namespaceIdris 2 ยท API-contract bugโ˜… 3,105 stars

If a namespace is declared in a where or let block, its qualified names do not resolve. The compiler reports an undefined name error, but the unqualified name works.

Full details and maintainer reply
Idris 2Reported
lowBiggerDecimal integral check accepts '-', '+' and letters, and crashes on empty stringCirce ยท Wrong-result bugโ˜… 2,543 stars

integralIsValidLong returns true for '-', '+' and 'a', and throws StringIndexOutOfBoundsException on an empty string. Its documented precondition is not checked.

Full details and maintainer reply
CirceReported
mediumPrinter with empty indent puts rbraceLeft and rbraceRight in swapped positionsCirce ยท Wrong-result bugโ˜… 2,543 stars

If indent is empty and the brace padding is custom, the padding after the closing brace appears before it and the reverse. The indented output path produces the correct order, so only the no-indent path is incorrect.

Full details and maintainer reply
CirceReported
lowPrinter indents text after a closing brace at the child nesting depthCirce ยท Wrong-result bugโ˜… 2,543 stars

If the indent is not empty and newline padding follows closing braces or brackets, the printer indents the next text one level too deep. The error affects only the whitespace of custom-printed JSON.

Full details and maintainer reply
CirceReported
highlinesLimited misses over-long lines that arrive together with their newlinefs2 ยท API-contract bugโ˜… 2,456 stars

If a complete over-long line and its terminator arrive in one chunk, linesLimited skips the length check and passes the line. The same input split into single elements raises LineTooLongException, so the guard depends on chunking.

Full details and maintainer reply
fs2Fixed
mediumleptonica numaIsSorted compares each element with the first one onlyleptonica ยท Wrong-result bugโ†“ 15k / moโ˜… 2,099 stars

It reports an array as sorted when the first element is its minimum or maximum. numaInterpolateArbxInterval then skips its sort and gives wrong values.

Full details and maintainer reply
leptonicaFixed
highleptonica numaWindowedMean dereferences NULL when the window is wider than the arrayleptonica ยท Crashโ†“ 15k / moโ˜… 2,099 stars

numaAddSpecifiedBorder returns NULL for such a window, and the result is not checked. The process crashes; pixThresholdByHisto reaches it.

Full details and maintainer reply
leptonicaFixed
highleptonica parseStringForNumbers calls atof(NULL) on a string with no numbersleptonica ยท Crashโ†“ 15k / moโ˜… 2,099 stars

An empty or separator-only string gives a NULL first token. The process crashes; kernelCreateFromFile reaches it with a blank data line.

Full details and maintainer reply
leptonicaFixed
highleptonica pixMaxDynamicRange reads before its log table for large 32-bit pixelsleptonica ยท Memory-safety bugโ†“ 15k / moโ˜… 2,099 stars

A 32 bpp pixel of 2^31 or more becomes a negative maximum. The log scale then reads before the 256-entry table, up to a crash.

Full details and maintainer reply
leptonicaFixed
highleptonica pixScaleGray2xLIDither and 4x read past the raster of a one-row imageleptonica ยท Memory-safety bugโ†“ 15k / moโ˜… 2,099 stars

pixScaleGray2xLIDither and pixScaleGray4xLIDither copy a second source row that does not exist. The overread grows with the image width.

Full details and maintainer reply
leptonicaFixed
lowleptonica numaRebinHistogram loses the x-axis of the input histogramleptonica ยท Wrong-result bugโ†“ 15k / moโ˜… 2,099 stars

It reads startx and binsize from the new array, not from the input. numaHistogramGetValFromRank then gives wrong values for the new histogram.

Full details and maintainer reply
leptonicaFixed
mediumleptonica numaUniformSampling gives negative or zero values at bin edgesleptonica ยท Wrong-result bugโ†“ 15k / moโ˜… 2,099 stars

Wrong edge weights drop boundary samples, also for the identity case. For example, {1,2,3} becomes {0,0,-3}.

Full details and maintainer reply
leptonicaConfirmed
lowstringToLong accepts negative zero and breaks the prism round-trip lawMonocle ยท API-contract bugโ˜… 1,701 stars

The string prism parses '-0' to 0 and reverseGet returns '0', so the round-trip law fails for '-0', '-00' and '-01'.

Full details and maintainer reply
MonocleFixed
mediumByteBuffer bodies are wrong or fail for direct buffers and for consumed bufferssttp ยท Wrong-result bugโ˜… 1,506 stars

If several code paths call ByteBuffer.array, it throws for direct and read only buffers. For consumed buffers, it returns the whole array behind the buffer, so request or response bodies come out wrong.

Full details and maintainer reply
sttpFixed
lowtoCurl drops multipart file names, content types and per-part headerssttp ยท Diagnostics bugโ˜… 1,506 stars

If a request has a multipart body, the curl output omits filename, content type and per-part headers. For other body types, it prints a placeholder, so the debug command sends a different request.

Full details and maintainer reply
sttpFixed
mediumDigest auth throws Unknown qop when the server lists several qopssttp ยท API-contract bugโ˜… 1,506 stars

If the server sends qop as auth,auth-int, the client compares the whole string against auth and auth-int. It then throws IllegalArgumentException with Unknown qop, so the request fails.

Full details and maintainer reply
sttpFixed
lowEnum validator's description string is missing its closing parenthesisTapir ยท Wrong-result bugโ˜… 1,476 stars

When a program logs the description of an enumeration validator, it prints an unbalanced string such as Some(in(A,B,C. Only the printed text is wrong, not the validation itself.

Full details and maintainer reply
TapirFixed
lowSchema product field has equals without a matching hashCodeTapir ยท Wrong-result bugโ˜… 1,476 stars

If two product fields are equal, they get different hash codes, so maps, sets and distinct() can miss or duplicate them. Only code that puts these schema types into hash-based collections has the problem.

Full details and maintainer reply
TapirFixed
lowDefault CORS settings leave PATCH out, so browsers block PATCH requestsTapir ยท API-contract bugโ˜… 1,476 stars

If the default CORS interceptor runs, browser preflight for PATCH fails with no Access-Control-Allow-Methods header, so the request never reaches the route. Add PATCH to the allowed methods as a workaround.

Full details and maintainer reply
TapirFixed
mediumObjectValue equality compares only hash codes, so unequal objects can be equalCaliban ยท Wrong-result bugโ˜… 993 stars

Two response objects whose 32-bit hash codes collide compare equal even when their fields differ. Deduplication and deep merges can then drop or mix data.

Full details and maintainer reply
CalibanFixed
lowwithExtension adds a second entry for a key and does not replace the firstCaliban ยท API-contract bugโ˜… 993 stars

If withExtension runs twice with the same key, the extensions hold two entries, which the spec does not allow. Serializers then disagree on which value wins.

Full details and maintainer reply
CalibanFixed
lowString and enum toString do not escape backslashes, tabs or carriage returnsCaliban ยท Wrong-result bugโ˜… 993 stars

The toString of StringValue escapes only quotes and newlines, and EnumValue only quotes. A backslash stays unescaped, so a JSON parser reads it as another value.

Full details and maintainer reply
CalibanFixed
highRelay Connection reports wrong hasNextPage and hasPreviousPage with cursorsCaliban ยท Wrong-result bugโ˜… 993 stars

The page flags depend only on first or last, not on the after or before cursor. Clients that page forward from the middle see hasPreviousPage false and can miss earlier items.

Full details and maintainer reply
CalibanFixed
lowSingle-root-field check for subscriptions runs only on the first subscriptionCaliban ยท Soundness bugโ˜… 993 stars

The validator finds one subscription operation and checks only that one. A later subscription with several root fields passes validation.

Full details and maintainer reply
CalibanFixed
lowFragment validation cache keyed by hash can return a result for a different queryCaliban ยท Soundness bugโ˜… 993 stars

The memo caches use hash codes as keys with no equality check. A collision can make invalid queries pass or valid queries fail.

Full details and maintainer reply
CalibanFixed
lowSchema comparison reports unchanged directive arguments as changedCaliban ยท Diagnostics bugโ˜… 993 stars

When one argument of a directive changes, the check reports every other common argument as changed, because it runs per argument against the directive. Schema diffs get noisy.

Full details and maintainer reply
CalibanFixed
mediumRemote schema parsing always drops subscriptionsCaliban ยท Wrong-result bugโ˜… 993 stars

parseRemoteSchema hardcodes subscriptionType to None, so any subscription in a remote schema definition is lost. Stitched schemas lose their subscriptions.

Full details and maintainer reply
CalibanFixed
mediumRemote response unwrap keeps only the first field of a multi-field objectCaliban ยท Data-loss bugโ˜… 993 stars

RemoteResolver.unwrap returns only the first root field of a remote response. The other fields are lost in stitch pipelines without an error.

Full details and maintainer reply
CalibanFixed
lowSchemaTracer calls head on a field list that can be emptyCaliban ยท Crashโ˜… 993 stars

SchemaTracer.wrapper calls head on request.field.fields without an emptiness check. An empty list throws NoSuchElementException instead of producing a response. The fix uses headOption.

Full details and maintainer reply
CalibanFixed
mediumSchema reporting stops for good after one error and ignores the retry delayCaliban ยท Wrong-result bugโ˜… 993 stars

On a SchemaError, ReportingDaemon logs the error and ends its loop, so later schema reports never run. The retry hint in the error is not used.

Full details and maintainer reply
CalibanFixed
mediumatOrElse throws IndexOutOfBoundsException on a Seq for a missing indexquicklens ยท API-contract bugโ˜… 852 stars

If atOrElse modifies a List at a missing index, it throws, and the default is not used. It computes the default value but writes it back with updated, which needs an existing index.

Full details and maintainer reply
quicklensFixed
mediumFailed append still counts as an inserted node, so later child indices driftLaminar ยท Wrong-result bugโ˜… 839 stars

The Append branch sets the node count to one even when the DOM insert returns false. So each failed append shifts later insert indices, and the rendered children stop matching the model.

Full details and maintainer reply
LaminarFixed
mediumFailed DOM insert still updates the child's parent in Laminar trackingLaminar ยท Wrong-result bugโ˜… 839 stars

insertChildBefore and insertChildAfter set the parent after the raw DOM insert, whatever its result. So a failed insert leaves the child recorded under a parent it is not in.

Full details and maintainer reply
LaminarFixed
highTMap.contains returns true for any key whenever the map is not emptyKyo ยท Wrong-result bugโ˜… 822 stars

The key argument is never used, so contains only checks whether the map has any entries. Lookups for keys that are not in the map return true.

Full details and maintainer reply
KyoFixed
highTMap.initWith builds the map and never runs the function passed to itKyo ยท Wrong-result bugโ˜… 822 stars

initWith ignores its function argument and returns the new map, so the user's code never runs. Its signature also drops the result type parameter.

Full details and maintainer reply
KyoFixed
mediumSchedule.linear doubles its delays, so growth is exponential, not linearKyo ยท Wrong-result bugโ˜… 822 stars

The linear schedule adds the base to itself at each step, so delays double: 1, 2, 4, 8 seconds. Retry waits grow much faster than the name promises.

Full details and maintainer reply
KyoFixed
mediumSubtype typeAnnotations returns the parent's parameter annotationsMagnolia ยท Wrong-result bugโ˜… 800 stars

If subtypesFromMirrorStep builds a Subtype, it passes the sealed trait's paramTypeAnns instead of the subtype's own annotations. A derived typeclass then sees the wrong annotations on a case class.

Full details and maintainer reply
MagnoliaFixed
lowMonadic[Future].point submits a task to the pool, not a completed valueMagnolia ยท Concurrency bugโ˜… 800 stars

If point uses Future(value), each lift submits a task to the ExecutionContext. Unlike Future.successful, the Future does not complete at once, and a shut down or saturated pool delays or breaks it.

Full details and maintainer reply
MagnoliaFixed
mediumMessagePack reader returns empty containers for lengths of 2^31 and aboveuPickle ยท Wrong-result bugโ˜… 768 stars

A 32-bit length of 2^31 or more wraps negative, so the array or map reads as empty and the reader ignores the payload that follows. Malformed input passes without any error.

Full details and maintainer reply
uPickleReported
lowJSON reader accepts invalid hex digits in unicode escapes and yields wrong charactersuPickle ยท Soundness bugโ˜… 768 stars

The reader accepts escapes such as u00gZ, uXXXX or u0G00, does not reject them, and decodes them to arbitrary code points. Malformed JSON then produces wrong text without an error.

Full details and maintainer reply
uPickleReported
mediumBigInt codec truncates negative values below the Long range during packAirframe ยท Data-loss bugโ˜… 666 stars

If pack receives a negative BigInt below Long.MinValue, the codec checks only the upper bound, so a different number gets stored without an error. The codec handles positive out-of-range values as intended.

Full details and maintainer reply
AirframeReported
highGrouped GEMM computes rows past the end of each groupDeepGEMM-Ascend ยท Wrong-result bugโ˜… 630 stars

The last m-block of each group does not truncate, so rows past the group's valid rows get computed. The error affects group sizes that are not multiples of BLOCK_M.

Full details and maintainer reply
DeepGEMM-AscendReported
mediumThe docs call C the accumulator, but the kernel only uses its presenceDeepGEMM-Ascend ยท Wrong-result bugโ˜… 630 stars

The documented C += A @ B does not happen, because the kernel adds the product to whatever D holds. A C that is not the same tensor as D gives a wrong result with no error.

Full details and maintainer reply
DeepGEMM-AscendReported
highThe Not implication rule encodes the inverse, so refined Int values can break boundsIron ยท Soundness bugโ˜… 562 stars

The Not[C1] implies Not[C2] rule encodes the inverse instead of the contrapositive, so a value that is at most 5 passes as at most 3. The compiler accepts an invalid refinement, and the value breaks the bound at runtime.

Full details and maintainer reply
IronFixed
highCollection implications such as ForAll to Exists compile though short lists break themIron ยท Soundness bugโ˜… 562 stars

Implications such as ForAll ==> Exists and Init ==> Head compile, but empty or one-element lists break the target constraint, so invalid values type-check.

Full details and maintainer reply
IronFixed
mediumLong range constraints compare through Double and fail above 2^53Iron ยท Soundness bugโ˜… 562 stars

Greater, Less and Multiple on Long values compare through Double, so the checks reject or accept values above 2^53 in error. For example, 2^53 + 1 fails Greater of 2^53.

Full details and maintainer reply
IronFixed
mediumFlow.range with a negative step emits only the first elementOx ยท Wrong-result bugโ˜… 529 stars

If the step is negative, the loop continues while t is at most the end value. range(5, 1, -1) stops after 5, but range(1, 5, -1) does not stop until Int overflow.

Full details and maintainer reply
OxFixed
mediumAdaptiveRetry stops on a Left result when no failure cost appliesOx ยท Wrong-result bugโ˜… 529 stars

If shouldPayFailureCost returns false for a retriable error, afterAttempt stops the retry sequence. The Right case continues for free, so the documented free retry never happens.

Full details and maintainer reply
OxFixed
lowFailure message suffix throws NullPointerException for exceptions without a messageMUnit ยท Diagnostics bugโ˜… 472 stars

munitAppendToFailureMessage calls endsWith on a null exception message. So a test that throws an exception without a message reports munit's NPE, not the original failure.

Full details and maintainer reply
MUnitFixed
highThe structured output reader picks a wrong fenced JSON blockhumanize ยท Wrong-result bugโ˜… 381 stars

If a reply has two JSON code blocks, the reader can return the later one without an error. A single JSON block with braces in the prose raises OutputSchemaError.

Full details and maintainer reply
humanizeFixed
lowA hard token limit turns a graceful cost limit into a hard limithumanize ยท API-contract bugโ˜… 381 stars

If a flow adds a hard output token limit to a turn, the cost limit becomes hard too. The turn stops with CostExceeded, although the cost limit is graceful.

Full details and maintainer reply
humanizeFixed
mediumA NaN model price makes the shared cost budget stop workinghumanize ยท Wrong-result bugโ˜… 381 stars

If a model price is NaN, the cost total becomes NaN for the epic. Later turns then exceed the hard cost limit without an error.

Full details and maintainer reply
humanizeFixed
highQ4_K dequantization uses the wrong scale for half of each blockgguf-tools ยท Wrong-result bugโ˜… 373 stars

The high-nibble weights of each Q4_K block use the scale and min of the earlier sub-block. The code dequantizes half of every Q4_K tensor with wrong values and gives no error.

Full details and maintainer reply
gguf-toolsReported
highgguf_get_tensor divides by zero on deprecated tensor types 4 and 5gguf-tools ยท Crashโ˜… 373 stars

Types q4_2 and q4_3 have zero items per block, so gguf_get_tensor divides by zero. The issue says this raises SIGFPE on x86 and gives a zero tensor size on arm64.

Full details and maintainer reply
gguf-toolsReported
mediumA compiled file crashes with an internal anomaly when file numbers changeNarya ยท Crashโ˜… 315 stars

A compiled file with a match or let rec fails to load after a file number change, with anomaly Meta.Map.find_opt. The same files check fine from source.

Full details and maintainer reply
NaryaFixed
lowSame file loads twice through different relative paths and causes a type errorNarya ยท API-contract bugโ˜… 315 stars

Imports with a parent-directory path are not reduced, so one file loads twice under two names. Constants from the two copies differ, so a valid file gets rejected with an unequal-constants error.

Full details and maintainer reply
NaryaFixed
mediumField projection from a transported tuple in 3D dimension raises an internal bugNarya ยท Crashโ˜… 315 stars

Field projection from a transport in a three-dimensional degeneracy of a record type raises bug E0500 on valid HoTT code. The program is correct, but Narya cannot check it.

Full details and maintainer reply
NaryaFixed
mediumUnannotated definitions store normal-form types, which makes .nyo files hugeNarya ยท Hangโ˜… 315 stars

Without a type annotation, the .nyo file stores the synthesized type in normal form, which can grow as 3 to the power of the depth. One definition produced a 280 MB compiled file and slow imports.

Full details and maintainer reply
NaryaConfirmed
lowcalc reverse-orientation check is slow because it builds a full error textNarya ยท Hangโ˜… 315 stars

When the forward check of a calc step fails, calc still builds the complete error text for it before it tests the reverse. Large types take 7.3 seconds and 1.7 GB instead of about 2.6 seconds.

Full details and maintainer reply
NaryaFixed
mediumWrites of compiled .nyo files are not atomic, so concurrent runs breakNarya ยท Concurrency bugโ˜… 315 stars

A reader can load a .nyo file while another process still writes it, and an interrupted write leaves a broken file. With the `-source-only` option, the tool still writes compiled files, which can break other runs.

Full details and maintainer reply
NaryaFixed
lowcalc hides an internal bug raised by its forward checkNarya ยท Diagnostics bugโ˜… 315 stars

calc's error handler accepts any diagnostic, even internal bugs, from the forward check. If the reverse check passes, the internal error is never shown to the user.

Full details and maintainer reply
NaryaFixed
mediumA compiled Narya file can refer to a constant of a different fileNarya ยท Wrong-result bugโ˜… 315 stars

A .nyo file keeps the file identifiers of the run that compiled it. In a later run, a definition can point to a constant of another file, or the load stops with an anomaly.

Full details and maintainer reply
NaryaFixed
mediumLoading compiled Narya files takes exponential time with diamond importsNarya ยท Hangโ˜… 315 stars

Each level of diamonds in the import graph multiplies the load time of .nyo files. Sixteen levels take 212 s and 2.5 GiB of memory, for 49 small files.

Full details and maintainer reply
NaryaFixed
mediumRepeat-until-success schedule never stops for an even repetition countGears ยท Hangโ˜… 306 stars

The retry counter advances by two, but the stop check expects one. So an even maxRepetitions never stops, and an odd one stops at about half the requested count.

Full details and maintainer reply
GearsReported
lowUniform Long generator overflows on wide ranges and retries out-of-range valuesHedgehog ยท Wrong-result bugโ˜… 268 stars

The formula max - min + 2 overflows for wide ranges, and the offset can give values below min. The retry guard catches these, so the cost is extra retries rather than wrong values.

Full details and maintainer reply
HedgehogReported
lowTake followed by a larger drop generates a negative LIMIT that some databases rejectScalaSQL ยท API-contract bugโ˜… 259 stars

A drop call with a count greater than the take count produces SQL with a negative LIMIT. PostgreSQL and MySQL reject that SQL, and SQLite reads it as no limit. Collections return an empty result.

Full details and maintainer reply
ScalaSQLReported
lowUpsert with no update assignments generates an incomplete DO UPDATE SET clauseScalaSQL ยท API-contract bugโ˜… 259 stars

An onConflictUpdate call with no assignments emits DO UPDATE SET with nothing after it, which is a syntax error. The API accepts the empty call without a compile error.

Full details and maintainer reply
ScalaSQLConfirmed
mediumA None value always declares the JDBC type NULL, which some drivers rejectScalaSQL ยท Crashโ˜… 259 stars

The base dialect calls setNull with the NULL type code instead of the column's real type. MS SQL routes around this, but other drivers such as Oracle may reject the statement.

Full details and maintainer reply
ScalaSQLConfirmed
mediumcamelToSnake turns XMLParser into xmlparser, so acronym columns are not foundScalaSQL ยท Wrong-result bugโ˜… 259 stars

camelToSnake merges consecutive capitals into one word, so the default mapping of XMLParser or HTTPSConnection misses snake_case columns such as xml_parser. The query then fails with column not found.

Full details and maintainer reply
ScalaSQLConfirmed
mediumWithCte.filter puts the WHERE clause inside the CTE, not the outer queryScalaSQL ยท Wrong-result bugโ˜… 259 stars

WithCte.filter swaps its arguments, so the WHERE clause lands in the CTE definition. Plain filters return the same rows, but filters applied after limits or aggregates on the CTE can change the result.

Full details and maintainer reply
ScalaSQLConfirmed
mediumstartsWith, endsWith and contains treat % and _ in user values as wildcardsScalaSQL ยท Wrong-result bugโ˜… 259 stars

The LIKE pattern concatenates the value and does not escape it. A search for 50% matches any string that starts with 50, and a_b matches axb, so untrusted input widens the match.

Full details and maintainer reply
ScalaSQLConfirmed
mediumIdentifier escape() does not escape a quote or bracket inside a nameScalaSQL ยท Security vulnerabilityโ˜… 259 stars

Table and column names that hold the dialect's delimiter break out of the quoted identifier. If such names come from untrusted data, they can alter the generated SQL.

Full details and maintainer reply
ScalaSQLConfirmed
lowTruncation counts a CRLF line break as two linesPPrint ยท Wrong-result bugโ˜… 248 stars

The truncation counts the carriage-return and newline pair as two breaks, because it resets the flags before the pair check runs. Line counts in truncated output for Windows-style text are off by one per break.

Full details and maintainer reply
PPrintReported
lowReader longCompare gives the wrong sign when the subtraction overflowsborer ยท Wrong-result bugโ˜… 242 stars

If longCompare compares a stored Long.MaxValue against Long.MinValue, the subtraction overflows and reports the reverse order.

Full details and maintainer reply
borerFixed
lowoverlayAll error message shows the end position where the start should befansi ยท Diagnostics bugโ˜… 237 stars

If start is not less than end, the exception text repeats the end value instead of start, so the message shows wrong numbers. Only the message text is wrong, and only for invalid calls.

Full details and maintainer reply
fansiReported
mediumEqual multi-style values hash the same but compare unequal, so sets keep duplicatesfansi ยท API-contract bugโ˜… 237 stars

Multiple attribute values compare by reference in equals but by content in hashCode. Two equal values built in separate calls count as two members in a Set, so deduplication fails.

Full details and maintainer reply
fansiReported
mediumAsync Either.forall returns false for Left instead of the stdlib's truedotty-cps-async ยท Wrong-result bugโ˜… 194 stars

Inside an async block, forall on a Left value returns false, while scala.util.Either returns true. Code that depends on the vacuous result gets the opposite answer without an error.

Full details and maintainer reply
dotty-cps-asyncFixed
mediumAsync Try.recover throws MatchError when the partial function does not matchdotty-cps-async ยท Crashโ˜… 194 stars

When recover or recoverWith gets an exception the partial function does not handle, the async version throws MatchError and drops the original failure. The original error is lost.

Full details and maintainer reply
dotty-cps-asyncFixed
mediumAsync `Using` leaks the resource when the body failsdotty-cps-async ยท Resource leakโ˜… 194 stars

The async version of `Using` releases the resource only on success. When the body fails, the resource is never closed, so each failure leaks a handle.

Full details and maintainer reply
dotty-cps-asyncFixed
mediumAsync IndexedSeq indexWhere ignores its from argumentdotty-cps-async ยท Wrong-result bugโ˜… 194 stars

The IndexedSeq override accepts a from index but always starts the search at 0. A call like indexWhere(p, 3) can return an index before the requested start point.

Full details and maintainer reply
dotty-cps-asyncFixed
mediumAsync Array dropWhile returns one element when every element matchesdotty-cps-async ยท Wrong-result bugโ˜… 194 stars

When the predicate matches all elements in an async block, dropWhile returns a one-element array instead of an empty one. The slice bound is off by one.

Full details and maintainer reply
dotty-cps-asyncFixed
mediumAsync breakable never runs its body, so it skips side effectsdotty-cps-async ยท Wrong-result bugโ˜… 194 stars

The async breakable wrapper passes the monadic body to Breaks.breakable as a discarded value, so the body never runs. Effects inside the block do not happen and the call reports success.

Full details and maintainer reply
dotty-cps-asyncFixed
mediumAsync lastIndexWhere throws IndexOutOfBounds when end is past the arraydotty-cps-async ยท Crashโ˜… 194 stars

Unlike the standard library, the async lastIndexWhere does not clamp end to the array size. If the caller sets an end larger than the array length, the call throws and does not search.

Full details and maintainer reply
dotty-cps-asyncFixed
mediumNonEmptyMap.map keeps duplicate keys and loses entries when converted to a MapHearth ยท Data-loss bugโ˜… 166 stars

When two keys map to the same new key, map keeps both entries, so size reports 2. toListMap keeps only the last value without an error, so the first entry is lost.

Full details and maintainer reply
HearthFixed
lowGenerated SQL identifiers keep embedded double quotes unescapedwvlet ยท Security vulnerabilityโ˜… 158 stars

doubleQuoteIfNecessary wraps non-plain identifiers in double quotes without escaping embedded quotes. A name with a quote yields malformed SQL.

Full details and maintainer reply
wvletFixed
mediumNewlines inside triple-quoted string literals vanish from generated SQLwvlet ยท Wrong-result bugโ˜… 158 stars

TripleQuoteString.sqlExpr splits the literal on newlines and rejoins the parts with || without a newline. A multi-line string then becomes one run of text in the query output, with no error.

Full details and maintainer reply
wvletFixed
mediumDuckDB schema analysis leaks a JDBC statement on every analysiswvlet ยท Resource leakโ˜… 158 stars

DuckDBSchemaAnalyzer creates a statement for schema analysis and never closes it, but it closes only the result set. In pooled setups, statements build up with each analysis until the connection closes.

Full details and maintainer reply
wvletFixed
highONNX model outputs always load as None because a name filter never matchesonnx-scala ยท Wrong-result bugโ˜… 151 stars

The output-name filter compares a string with inner iterables, so it is always false. Model output reads return only None values for every model.

Full details and maintainer reply
onnx-scalaReported
mediumA model with BOOL, STRING, UINT or FLOAT16 tensors fails to load with MatchErroronnx-scala ยท Crashโ˜… 151 stars

The tensor decoder handles only six ONNX data types and has no default case. A model whose initializers use another type fails to load with a scala.MatchError.

Full details and maintainer reply
onnx-scalaReported
low`Raise.catching` ignores exceptions that are subclasses of the target typeyaes ยท API-contract bugโ˜… 140 stars

If E is RuntimeException, the catch compares exception classes with ==, so an ArithmeticException escapes as a raw exception. The catch works when the exception class is E itself.

Full details and maintainer reply
yaesFixed
mediumDiagram drops the last step of a three-step interruption pathworkflows4s ยท Wrong-result bugโ˜… 131 stars

A diagram of a three-step interruption sequence omits the final step, because an off-by-one threshold keeps only the second step. The step still runs at execution time.

Full details and maintainer reply
workflows4sFixed
lowDiagrams draw a Loop that has not started as executedworkflows4s ยท Wrong-result bugโ˜… 131 stars

If a loop has only its unstarted body in its history, RenderUtils.hasStarted returns true. Diagrams then show the loop that has not run with the executed style, and other renderers inherit the wrong answer.

Full details and maintainer reply
workflows4sFixed
lowSigned add overflow check misses negative overflow, so MinValue plus -1 wrapsSoundness ยท Wrong-result bugโ˜… 114 stars

The addS family tests only positive overflow, so Long.MinValue plus -1 wraps to Long.MaxValue with no OverflowError, while unsigned add functions are correct.

Full details and maintainer reply
SoundnessFixed
mediumShort ** Double truncates its result to a Short and gives wrong resultsSoundness ยท Wrong-result bugโ˜… 114 stars

The Short ** Double operator casts its Double result to Short, so (200: Short) ** 2.0 returns -25536 instead of 40000 and fractional results lose their fraction.

Full details and maintainer reply
SoundnessFixed
mediumByte and Short hex, octal and binary output sign-extends to 32 bitsSoundness ยท Wrong-result bugโ˜… 114 stars

A negative Byte or Short converts to hex, octal or binary through an Int. So 0xFF as a Byte prints ffffffff instead of ff, and binary output has 32 digits.

Full details and maintainer reply
SoundnessFixed
mediumFloat and Double modulo gives wrong results for a negative divisorSoundness ยท Wrong-result bugโ˜… 114 stars

The %% operator on Float and Double only corrects negative remainders for positive divisors, so 7.0 %% -3.0 returns 1.0 instead of -2.0, while the integer versions are correct.

Full details and maintainer reply
SoundnessFixed
mediumA Rankine delta added to a Temperature uses the inverted 9/5 factorSoundness ยท Wrong-result bugโ˜… 114 stars

A Rankine quantity converts with 9/5 instead of 5/9 when added or subtracted. So 9 R added to 273.15 K gives 289.35 K instead of 278.15 K.

Full details and maintainer reply
SoundnessFixed
lowLevenshtein distance is 0 when the left string is emptySoundness ยท Wrong-result bugโ˜… 114 stars

The edit distance loop never runs for an empty left string. So the distance between an empty string and abc is 0 instead of 3, and the normalized distance reports a perfect match.

Full details and maintainer reply
SoundnessFixed
mediumCompass 8-point list has Southwest twice and no NorthwestSoundness ยท Wrong-result bugโ˜… 114 stars

Compass.points8 ends with Southwest instead of Northwest, so lookups in the northwest quadrant around 315 degrees return Southwest.

Full details and maintainer reply
SoundnessFixed
highCSV writer does not quote cells that contain the delimiter or line breaksSoundness ยท Data-loss bugโ˜… 114 stars

Dsv quotes only cells that hold a quote character. A cell with a comma or newline goes out raw, so the output splits into extra columns or rows when read back.

Full details and maintainer reply
SoundnessFixed
highRaster crop uses the bottom offset for the top edge and keeps wrong rowsSoundness ยท Wrong-result bugโ˜… 114 stars

crop(top = 10) keeps the wrong rows because the pixel mapping offsets Y by bottom instead of top. The crop comes out flipped, and no error appears.

Full details and maintainer reply
SoundnessFixed
mediumSignal numbers are off by two and Hup gives -1Soundness ยท Wrong-result bugโ˜… 114 stars

The id formula on the Signal enum returns -1 for Hup. For other signals, it is two below the POSIX number, so an OS call that uses it targets the wrong signal or fails.

Full details and maintainer reply
SoundnessFixed
highSession store uses an unsynchronized HashMap shared across request threadsSoundness ยท Concurrency bugโ˜… 114 stars

Context keeps per-session values in a plain HashMap that concurrent HTTP threads access, so parallel requests can lose updates, throw ConcurrentModificationException or corrupt the map.

Full details and maintainer reply
SoundnessFixed
mediumLong digest drops the top and bottom bytes, so distinct Longs can collideSoundness ยท Wrong-result bugโ˜… 114 stars

The Long Digestible uses shifts 52 down to 4 instead of 56 down to 0, so it hashes only seven misaligned bytes, and the Double instance inherits the loss.

Full details and maintainer reply
SoundnessFixed
mediumOrdinal subsequent(size) returns one element more than requestedSoundness ยท Wrong-result bugโ˜… 114 stars

subsequent builds an interval one longer than size, so the Foreground and Background ANSI style bit fields in escapade overlap by one bit each.

Full details and maintainer reply
SoundnessFixed
lowTwo manifest attribute objects use the misspelled name SpecifacationSoundness ยท API-contract bugโ˜… 114 stars

SpecifacationVendor and SpecifacationVersion contain a typo, while SpecificationTitle is correct, so Scala code cannot refer to them by the expected names. The JAR manifest keys themselves are correct.

Full details and maintainer reply
SoundnessFixed
lowTopological sort throws NoSuchElementException on cyclic inputSoundness ยท API-contract bugโ˜… 114 stars

Dag does not check for cycles when it adds edges. Sort calls get on the search result, so a cyclic graph fails with an unexplained NoSuchElementException, not a cycle error.

Full details and maintainer reply
SoundnessFixed
mediumSemver comparison says equal versions are less and releases sort below prereleasesSoundness ยท Wrong-result bugโ˜… 114 stars

The comparator returns true for 1.0.0 against 1.0.0 and ranks 1.0.0 below 1.0.0-alpha, which breaks sorting and comparisons under the SemVer 2.0 precedence rules.

Full details and maintainer reply
SoundnessFixed
mediumCoproduct serializer breaks for sealed types with 129 or more subtypesflink-scala-api ยท Crashโ˜… 113 stars

Writes and reads of the subtype index use a signed byte, so index 128 and up becomes negative. Deserialization then throws ArrayIndexOutOfBoundsException.

Full details and maintainer reply
flink-scala-apiConfirmed
mediumQq match in a recursive partial def fails with a kernel errorquote4 ยท Crashโ˜… 111 stars

A partial def that matches a Qq pattern and recurses fails at kernel check with 'declaration has metavariables', on code the reporter expects to compile. The report gives no minimal reproducer.

Full details and maintainer reply
quote4Reported
lowPooled connection validation failures never emit a debug messageldbc ยท Diagnostics bugโ˜… 110 stars

If validation fails or times out for a pooled connection, no debug message appears. The log effect gets created and then discarded, so pool problems leave no trace in the logs.

Full details and maintainer reply
ldbcFixed
lowBatch query builder breaks on a lowercase values keywordldbc ยท API-contract bugโ˜… 110 stars

If a clause uses lowercase values, MySQL rejects the combined statement with a syntax error, because the builder splits on uppercase VALUES only. Uppercase VALUES works.

Full details and maintainer reply
ldbcFixed
mediumStatement.execute throws a MatchError for SHOW, DESCRIBE and EXPLAINldbc ยท Crashโ˜… 110 stars

Statement.execute treats only SELECT as a query. If SHOW, DESCRIBE, EXPLAIN or a similar statement returns rows, it throws MatchError and gives no results.

Full details and maintainer reply
ldbcFixed
mediumCode generation maps MEDIUMBLOB columns to TINYBLOBldbc ยท Wrong-result bugโ˜… 110 stars

If a schema contains mediumblob, the parser builds a TINYBLOB type. Generated DDL and Scala mappings then allow only 255 bytes for columns meant to hold up to 16 MB.

Full details and maintainer reply
ldbcFixed
mediumResultSet.isFirst returns true for every row after the firstldbc ยท Wrong-result bugโ˜… 110 stars

isFirst checks that the cursor position is greater than zero. If the cursor is on row two or later, it returns true, so code that branches on isFirst misbehaves.

Full details and maintainer reply
ldbcFixed
mediumText-protocol string escape misses NUL, newline and other charactersldbc ยท Security vulnerabilityโ˜… 110 stars

The text-protocol escape handles only quotes and backslashes, in the wrong order, so NUL, CR, LF and Ctrl-Z stay raw. If an attacker controls a string on that path, it can break out of the literal.

Full details and maintainer reply
ldbcFixed
highCode generation maps DOUBLE and REAL columns to FLOAT and loses precisionldbc ยท Wrong-result bugโ˜… 110 stars

The schema parser has no DOUBLE type, so DOUBLE and REAL columns become FLOAT. Generated Scala code then uses 32-bit Float for 64-bit values, and the precision loss gives no error.

Full details and maintainer reply
ldbcFixed
mediumChained TLS builder calls drop the earlier settingldbc ยท Wrong-result bugโ˜… 110 stars

If a builder chains withTLSParameters with withFallback in either order, it resets the setting applied first without an error. The connection then uses default TLS parameters or the wrong fallback policy.

Full details and maintainer reply
ldbcFixed
mediumCharset version check reverses its test, so it drops gb18030 on MySQL 8ldbc ยท Wrong-result bugโ˜… 110 stars

isOkayForVersion reverses the version comparison, so on MySQL 8 it drops gb18030, eucjpms and cp932 and offers them to servers that lack them. Only apps that rely on these charsets see the fault.

Full details and maintainer reply
ldbcFixed
lowSchema DSL rejects VARCHAR lengths above 255ldbc ยท API-contract bugโ˜… 110 stars

The VARCHAR check uses the CHAR limit, so VARCHAR(500) fails to compile, although MySQL allows up to 65,535 bytes.

Full details and maintainer reply
ldbcFixed
mediumCircuit breaker lets many test requests through in half-open stateldbc ยท Concurrency bugโ˜… 110 stars

If several concurrent calls enter the half-open state after the reset timeout, they can all run the test action. A success can then close the breaker, even though a concurrent test has failed.

Full details and maintainer reply
ldbcFixed
highPool resetConnection commits the unfinished transaction of a returned connectionldbc ยท Data-loss bugโ˜… 110 stars

If resetConnection turns autocommit on before it rolls back, MySQL commits the pending transaction at that point. Half-written data from an unhandled error gets persisted instead of discarded.

Full details and maintainer reply
ldbcFixed
lowThe cp850 charset declares two bytes per character, not oneldbc ยท Wrong-result bugโ˜… 110 stars

The charset table gives cp850 a maximum length of 2 bytes per character, but cp850 is single-byte. Buffer size and the single-byte fallback branch then take the wrong path.

Full details and maintainer reply
ldbcFixed
lowNonNegativeInterval hashCode ignores reduced form, so hash sets breakScalus ยท API-contract bugโ†“ 57k / moโ˜… 106 stars

equals compares reduced fractions but hashCode uses the raw fields, so 2/4 equals 1/2 yet they have different hashes, and HashSet or HashMap lookups miss equivalent intervals.

Full details and maintainer reply
ScalusFixed
mediumBLS12-381 point wrappers override equals but not hashCodeScalus ยท API-contract bugโ†“ 57k / moโ˜… 106 stars

G1Element, G2Element and MLResult override equals by curve point but keep the identity hashCode. Equal points get different hashes, so HashSet and HashMap lookups miss them.

Full details and maintainer reply
ScalusFixed
mediumBytes overrides equals but not hashCode, so HashMap lookups miss equal keysgeny ยท API-contract bugโ˜… 98 stars

Two Bytes objects built from the same array compare equal but have different hash codes. Map keys or set members give lookup misses for values that are equal.

Full details and maintainer reply
genyReported
mediummaxBy and minBy return null or zero for an empty generator, without an errorgeny ยท Wrong-result bugโ˜… 98 stars

Unlike min and max, maxBy and minBy return null for reference types and zero for numeric types on an empty generator. The caller gets a placeholder with no error.

Full details and maintainer reply
genyReported
mediumMarkdown decision table rows get one column too few when some rules lack annotationsdecisions4s ยท Wrong-result bugโ˜… 85 stars

When at least one rule has an annotation, rules without one produce rows with fewer cells than the header. Downstream tools may corrupt the malformed Markdown table, but the HTML renderer is fine.

Full details and maintainer reply
decisions4sConfirmed
lowDistinct hit policy treats +0.0 and -0.0 as the same outputdecisions4s ยท Wrong-result bugโ˜… 85 stars

The Distinct hit policy deduplicates outputs with a Set, and Double equality treats positive and negative zero as equal. A table with +0.0 and -0.0 outputs returns a result instead of reporting a conflict.

Full details and maintainer reply
decisions4sFixed
lowThe diagnostics printer throws at construction for a table with no input fieldsdecisions4s ยท Crashโ˜… 85 stars

A constant decision table with zero input columns makes DiagnosticsPrinter throw on max of an empty collection during construction. The crash happens before the printer outputs any diagnostic.

Full details and maintainer reply
decisions4sReported
mediumLineage JSON export is invalid when names contain quotes or backslashesetl4s ยท API-contract bugโ˜… 81 stars

The JSON helper wraps strings in quotes without escaping them. A name or description with a double quote or backslash, or an input with a newline, makes the lineage JSON unparseable.

Full details and maintainer reply
etl4sConfirmed
lowLineage chain and combine return identical lineages despite different doc commentsetl4s ยท Specification gapโ˜… 81 stars

chain and combine have identical bodies, but their doc comments describe sequential and parallel use. The maintainer says the shared accumulating design is intended, and the docs confuse users.

Full details and maintainer reply
etl4sConfirmed
criticallrat-check reports VERIFIED for a proof that proves nothingDRAT-trim ยท Soundness bugโ˜… 73 stars

On a satisfiable formula, the checker accepts the one-line proof 2 0 0 and prints VERIFIED with exit code 0, a regression from an earlier commit. A second proof also segfaults the checker.

Full details and maintainer reply
DRAT-trimReported
lowThe snapshot representation drops the ESC character and hides ANSI differencessnapshot4s ยท Wrong-result bugโ˜… 69 stars

If InlineRepr.printChar maps the ESC character to an empty string, strings with colour codes snapshot as bracketed plain text. Two strings that differ only by ESC compare equal.

Full details and maintainer reply
snapshot4sReported
lowCirce encoder emits record fields in hash order, not declaration orderrecord4s ยท API-contract bugโ˜… 68 stars

If a record has more than four fields, the circe encoder builds a hash Map, so JSON fields come out in hash order, not declaration order. The order can also differ between Scala versions.

Full details and maintainer reply
record4sReported
lowCode generator throws divide-by-zero when the known divisor is zerostrymonas ยท Crashโ˜… 56 stars

If a known divisor is zero at staging time, int_div and long_div fold the division at once and the macro crashes with ArithmeticException. int_mod already has a guard for a related case.

Full details and maintainer reply
strymonasReported
highCooked.collect returns the stream elements in reverse orderstrymonas ยท Wrong-result bugโ˜… 56 stars

If collect runs on a stream, it builds the list with each new element at the front. The elements come back in reverse, so every result has the wrong order, and one reverse call fixes it.

Full details and maintainer reply
strymonasReported
lowzipWithIndex keeps its counter across runs of the same streamUnwrapped ยท Wrong-result bugโ˜… 40 stars

The index variable sits outside the stream body. If a second run consumes the same stream, the index continues from the first run instead of at zero.

Full details and maintainer reply
UnwrappedReported
lowPutPartiallyApplied equals throws ClassCastException for values of other typesUnwrapped ยท Crashโ˜… 40 stars

If code compares this object with another type or with null, equals throws and does not return false, because it casts without checking canEqual. Sibling classes do the canEqual check.

Full details and maintainer reply
UnwrappedReported
mediumRabbitMQ config ignores automaticTopologyRecovery, so a false value has no effectPillars ยท Wrong-result bugโ˜… 33 stars

The config conversion does not copy automaticTopologyRecovery to the client config. The client still recovers topology when the user disables the setting.

Full details and maintainer reply
PillarsReported
lowServer drops the recorder IO, so the response body size metric never recordsPillars ยท Wrong-result bugโ˜… 33 stars

The server-side recorder builds the metric effect inside Option.foreach, so the effect never runs. The response body size histogram stays empty.

Full details and maintainer reply
PillarsReported
lowRedaction strategy encodes as OptIn while its decoder expects optinPillars ยท API-contract bugโ˜… 33 stars

The encoder writes OptIn in mixed case, while every other value is lowercase and the decoder lowercases input. The decode error for an unknown value also names an SSL mode.

Full details and maintainer reply
PillarsReported
lowThe HTTP client declares body size histograms but never writes themPillars ยท Wrong-result bugโ˜… 33 stars

The client metrics middleware declares request and response body size histograms but never records them. Dashboards show empty panels, and nothing warns at startup.

Full details and maintainer reply
PillarsReported
lowThe config encoder throws MatchError on a custom SSL contextPillars ยท Crashโ˜… 33 stars

The SSL encoder covers three cases, so a custom SSL context fails with scala.MatchError, for example in a config dump. The decoder also cannot read it back.

Full details and maintainer reply
PillarsReported
mediumDoobie config drops the system schema, app schema and debug settingsPillars ยท Wrong-result bugโ˜… 33 stars

toHikariConfig ignores systemSchema, appSchema and debug, so queries use the default schema and debug logging stays off. Users who set these values get different behaviour without any warning.

Full details and maintainer reply
PillarsReported
lowThe leaderboard deploy fails in the Lake dependency steplean-eval-leaderboard ยท Build bugโ˜… 29 stars

The deploy step runs lake update, which fails on local refs. The public site then shows data from October 14.

Full details and maintainer reply
lean-eval-leaderboardFixed
mediumLP migration reads the price from a pool with the wrong tick spacingAero ยท Security vulnerability

When creating a cross-tier pool, LpMigrator looks up the source price using the destination tick spacing. Manipulating that unrelated pool can make the migration lose principal; the report demonstrates a 1.817% loss.

Full details and maintainer reply
AeroConfirmed
lowA new referral diverts rewards accrued before the referral existedAero ยท Security vulnerability

CLGauge reads the current referral configuration when rewards are claimed and applies it to the entire unclaimed amount. Creating a referral therefore takes a share of rewards that accrued before it existed.

Full details and maintainer reply
AeroConfirmed

For AI agents: llms.txt · llms-full.txt · data.json