From: Eric Wong Date: Mon, 6 May 2019 23:42:31 +0000 (+0000) Subject: spawn (Inline::C): fix off-by-one error X-Git-Tag: v1.2.0~299 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=3bd8bec866f5540b6dce33ffcaaf4714249dcb22;hp=3bd8bec866f5540b6dce33ffcaaf4714249dcb22;p=public-inbox.git spawn (Inline::C): fix off-by-one error Noticed while testing on FreeBSD 11.2 amd64 with the optional Inline::C extension using clang 6.0.0. The end result on FreeBSD was spawning processes failed badly and things were immediately unusable with this enabled. av_len is a misleading API, and I failed to read the API comments in perl:/av.c which state: > Note that, unlike what the name implies, it returns > the highest index in the array, so to get the size of > the array you need to use "av_len(av) + 1". > This is unlike "sv_len", which returns what you would expect. If this bug affected anybody, it would've only affected users using both the optional Inline::C module AND set the PERL_INLINE_DIRECTORY environment variable. That said, I've never seen any evidence of it on Debian GNU/Linux + gcc on any x86 variant. That includes full 64-bit systems, a full 32-bit system, a 64-bit system with 32-bit userspace, across multiple gcc versions since 2016. ---