Re: [PATCH v2 1/3] diff-parseopt: correct variable types that are used by parseopt
- Date: Wed, 29 May 2019 12:43:15 -0400
- From: Eric Sunshine <sunshine@xxxxxxxxxxxxxx>
- Subject: Re: [PATCH v2 1/3] diff-parseopt: correct variable types that are used by parseopt
On Wed, May 29, 2019 at 5:11 AM Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> 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
> 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 <tmz@xxxxxxxxx>
> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx>