mirror of
https://github.com/oven-sh/bun
synced 2026-02-09 18:38:55 +00:00
## Summary Fixed an off-by-one error in buffer allocation for several path module functions when handling paths longer than `PATH_SIZE` (typically 4096 bytes on most platforms). ## Changes - `normalizeJS_T`: Added +1 to buffer allocation for null terminator - `relativeJS_T`: Added +1 to buffer allocation for null terminator - `toNamespacedPathJS_T`: Added +9 bytes (8 for possible UNC prefix + 1 for null terminator) ## Test plan - Added tests for `path.normalize()` with paths up to 100,000 characters - Added tests for `path.relative()` with very long paths - All existing path tests continue to pass The issue occurred because when a path is exactly equal to or longer than `PATH_SIZE`, the buffer was allocated with size equal to the path length, but then a null terminator was written at `buf[bufSize]`, which was out of bounds. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Bot <claude-bot@bun.sh> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>