Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 May 2013 11:03:36 -0700
From:      mdf@FreeBSD.org
To:        Hans Petter Selasky <hselasky@freebsd.org>
Cc:        "svn-src-head@freebsd.org" <svn-src-head@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "src-committers@freebsd.org" <src-committers@freebsd.org>
Subject:   Re: svn commit: r250986 - head/sys/dev/usb
Message-ID:  <CAMBSHm_EgRxbjvTQOu2EDMN%2BMtEJzzbTKSmRKPa9%2B0j3AkqCfQ@mail.gmail.com>
In-Reply-To: <201305251709.r4PH9xfv015285@svn.freebsd.org>
References:  <201305251709.r4PH9xfv015285@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, May 25, 2013 at 10:09 AM, Hans Petter Selasky
<hselasky@freebsd.org>wrote:

> Author: hselasky
> Date: Sat May 25 17:09:58 2013
> New Revision: 250986
> URL: http://svnweb.freebsd.org/changeset/base/250986
>
> Log:
>   Fix some statical clang analyzer warnings.
>
> Modified:
>   head/sys/dev/usb/usb_device.c
>   head/sys/dev/usb/usb_hub.c
>   head/sys/dev/usb/usb_msctest.c
>
> Modified: head/sys/dev/usb/usb_device.c
>
> ==============================================================================
> --- head/sys/dev/usb/usb_device.c       Sat May 25 16:58:12 2013
>  (r250985)
> +++ head/sys/dev/usb/usb_device.c       Sat May 25 17:09:58 2013
>  (r250986)
> @@ -799,9 +799,6 @@ usb_config_parse(struct usb_device *udev
>                         /* find maximum number of endpoints */
>                         if (ep_max < temp)
>                                 ep_max = temp;
> -
> -                       /* optimalisation */
> -                       id = (struct usb_interface_descriptor *)ed;
>                 }
>         }
>
>
> Modified: head/sys/dev/usb/usb_hub.c
>
> ==============================================================================
> --- head/sys/dev/usb/usb_hub.c  Sat May 25 16:58:12 2013        (r250985)
> +++ head/sys/dev/usb/usb_hub.c  Sat May 25 17:09:58 2013        (r250986)
> @@ -341,7 +341,6 @@ uhub_reattach_port(struct uhub_softc *sc
>
>         DPRINTF("reattaching port %d\n", portno);
>
> -       err = 0;
>         timeout = 0;
>         udev = sc->sc_udev;
>         child = usb_bus_port_get_device(udev->bus,
>
> Modified: head/sys/dev/usb/usb_msctest.c
>
> ==============================================================================
> --- head/sys/dev/usb/usb_msctest.c      Sat May 25 16:58:12 2013
>  (r250985)
> +++ head/sys/dev/usb/usb_msctest.c      Sat May 25 17:09:58 2013
>  (r250986)
> @@ -802,7 +802,6 @@ usb_msc_eject(struct usb_device *udev, u
>         if (sc == NULL)
>                 return (USB_ERR_INVAL);
>
> -       err = 0;
>         switch (method) {
>         case MSC_EJECT_STOPUNIT:
>                 err = bbb_command_start(sc, DIR_IN, 0, NULL, 0,
> @@ -844,6 +843,7 @@ usb_msc_eject(struct usb_device *udev, u
>                 break;
>         default:
>                 DPRINTF("Unknown eject method (%d)\n", method);
> +               err = 0;
>                 break;
>         }
>         DPRINTF("Eject CD command status: %s\n", usbd_errstr(err));
>

I don't know about the top one, but the bottom two are the safer way to
code, and should not have been changed.  Unless we feel guaranteed the
compiler can detect all uninitialized use and will break the build, an
early initialization to a sane value is absolutely the right thing to do,
even if it will be overwritten.  If the compiler feels sure the
initialization isn't needed, it does not have to emit the code.  But any
coding change after the (missing) initialization can create a bug now
(well, it depends on how the code is structured, but from the three lines
of context svn diff provides it's not clear a bug couldn't easily be
introduced).

Thanks,
matthew



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAMBSHm_EgRxbjvTQOu2EDMN%2BMtEJzzbTKSmRKPa9%2B0j3AkqCfQ>