winegcc: sign-compare fixes

richardvoigt at gmail.com richardvoigt at gmail.com
Wed Feb 7 20:42:28 CST 2007


On 2/7/07, Joris Huizer <joris_huizer at yahoo.com> wrote:
> I believe this one causes problems -- please do not commit yet
>
> Joris Huizer <joris_huizer at yahoo.com> wrote:
>
>  ________________________________
> Need Mail bonding?
> Go to the Yahoo! Mail Q&A for great tips from Yahoo! Answers users.>From
> 8686a200bd1f1cbd934d761013c487a9ddc195c9 Mon Sep 17
> 00:00:00 2001
> From: Joris Huizer
> Date: Wed, 7 Feb 2007 15:19:25 +0100
> Subject: [PATCH] winegcc sign-compare fixes
> To: wine-patches
>
> ---
>  tools/winegcc/utils.c | 13 +++++++------
>  tools/winegcc/winegcc.c | 11 ++++++-----
>  2 files changed, 13 insertions(+), 11 deletions(-)
>
> diff --git a/tools/winegcc/utils.c b/tools/winegcc/utils.c
> index 1af91e9..c144077 100644
> --- a/tools/winegcc/utils.c
> +++ b/tools/winegcc/utils.c
> @@ -120,14 +120,14 @@ void strarray_add(strarray* arr, const c
>
>  void strarray_del(strarray* arr, int i)
>  {
> - if (i < 0 || i >= arr->size) error("Invalid index i=%d", i);
> + if (i < 0 || (unsigned int)i >= arr->size) error("Invalid index i=%d", i);

The unsigned int comparison here makes the negative check superfluous.
 Perhaps the argument should even be changed to unsigned as well, to
match the range of arr->size (if the element is one byte).

>  memmove(&arr->base[i], &arr->base[i + 1], (arr->size - i - 1) *
> sizeof(arr->base[0]));
>  arr->size--;
>  }

If the element size could be greater than one byte, the multiplication
here should be checked for overflow (actually, this is more necessary
when the array is created or expanded).

>



More information about the wine-devel mailing list