From: Eric Sunshine Date: Wed, 29 May 2019 16:43:15 GMT Subject: Re: [PATCH v2 1/3] diff-parseopt: correct variable types that are used by parseopt Message-ID: In-Reply-To: <20190529091116.21898-2-pclouds@gmail.com> On Wed, May 29, 2019 at 5:11 AM Nguyễn Thái Ngọc Duy wrote: > Most number-related OPT_ macros store the value in an 'int' > variable. Many of the variables in 'struct diff_options' have a > different type, but during the conversion to using parse_options() I > failed to notice and correct. > > The problem was reported on s360x which is a big-endian > architechture. The variable to store '-w' option in this case is > xdl_opts, 'long' type, 8 bytes. But since parse_options() assumes > 'int' (4 bytes), it will store bits in the wrong part of xdl_opts. The > problem was found on little-endian platforms because parse_options() Did you mean s/found/not &/ ? > will accidentally store at the right part of xdl_opts. > > There aren't much to say about the type change (except that 'int' for s/aren't/isn't/ > xdl_opts should still be big enough, since Windows' long is the same > size as 'int' and nobody has complained so far). Some safety checks may > be implemented in the future to prevent class of bugs. > > Reported-by: Todd Zullinger > Signed-off-by: Nguyễn Thái Ngọc Duy