[Libguestfs] [PATCH 3/3] Use an unsigned type (size_t) for all loop iterators.
Matthew Booth
mbooth at redhat.com
Fri Jul 16 13:27:12 UTC 2010
On 16/07/10 13:05, Richard W.M. Jones wrote:
>> From 460031c9f9bcabd5e132aab22ab0d001ab14d33d Mon Sep 17 00:00:00 2001
> From: Richard Jones<rjones at redhat.com>
> Date: Fri, 16 Jul 2010 12:58:54 +0100
> Subject: [PATCH 3/3] Use an unsigned type (size_t) for all loop iterators.
>
> This resolves a warning from gcc 4.5:
> assuming signed overflow does not occur when simplifying
> conditional to constant
>
> This page explains the issues in some detail:
> http://www.airs.com/blog/archives/120
> ---
> configure.ac | 1 -
> src/generator.ml | 42 +++++++++++++++++++++---------------------
> 2 files changed, 21 insertions(+), 22 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index caf25ee..671fbb0 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -110,7 +110,6 @@ if test "$gl_gcc_warnings" = yes; then
> nw="$nw -Wmissing-format-attribute" # daemon.h's asprintf_nowarn
> nw="$nw -Winline" # daemon.h's asprintf_nowarn
> nw="$nw -Wshadow" # numerous, plus we're not unanimous
> - # ?? -Wstrict-overflow
> nw="$nw -Wunsafe-loop-optimizations" # just a warning that an optimization
> # was not possible, safe to ignore
> nw="$nw -Wpacked" # Allow attribute((packed)) on structs
> diff --git a/src/generator.ml b/src/generator.ml
> index cb3f773..8fc619f 100755
> --- a/src/generator.ml
> +++ b/src/generator.ml
...
> @@ -9354,7 +9354,7 @@ put_handle (guestfs_h *g)
> static char **
> get_string_list (PyObject *obj)
> {
> - int i, len;
> + size_t i, len;
> char **r;
>
> assert (obj);
This isn't safe. len is assigned later:
len = PyList_Size (obj);
PyList_Size returns Py_ssize_t, which is a signed type. This may also
mean that the later code may also need a second look, as it doesn't
check for a negative return value.
The rest all look fine, though.
Matt
--
Matthew Booth, RHCA, RHCSS
Red Hat Engineering, Virtualisation Team
GPG ID: D33C3490
GPG FPR: 3733 612D 2D05 5458 8A8A 1600 3441 EA19 D33C 3490
More information about the Libguestfs
mailing list