[libvirt] [PATCH 1/2] netdev: accept NULL in virNetDevSetupControl

Ján Tomko jtomko at redhat.com
Fri Jun 21 17:45:34 UTC 2013


On 06/21/2013 07:30 PM, Ján Tomko wrote:
> Commit b9c6b073 dropped the version of virNetDevSetupControl
> that didn't check for NULL arguments, but we call it like that
> in virNetDevBridgeDelete.
> ---
>  src/util/virnetdev.c | 14 ++++++++------
>  1 file changed, 8 insertions(+), 6 deletions(-)
> 
> diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
> index 7aba515..ebe20d0 100644
> --- a/src/util/virnetdev.c
> +++ b/src/util/virnetdev.c
> @@ -62,13 +62,15 @@ static int virNetDevSetupControlFull(const char *ifname,
>  {
>      int fd;
>  
> -    memset(ifr, 0, sizeof(*ifr));
> +    if (ifr && ifname) {
> +        memset(ifr, 0, sizeof(*ifr));
>  
> -    if (virStrcpyStatic(ifr->ifr_name, ifname) == NULL) {
> -        virReportSystemError(ERANGE,
> -                             _("Network interface name '%s' is too long"),
> -                             ifname);
> -        return -1;
> +        if (virStrcpyStatic(ifr->ifr_name, ifname) == NULL) {
> +            virReportSystemError(ERANGE,
> +                                 _("Network interface name '%s' is too long"),
> +                                 ifname);
> +            return -1;
> +        }
>      }
>  
>      if ((fd = socket(domain, type, 0)) < 0) {
> 

I missed this:

diff --git a/src/util/virnetdev.h b/src/util/virnetdev.h
index 933a9b3..44a37ca 100644
--- a/src/util/virnetdev.h
+++ b/src/util/virnetdev.h
@@ -38,7 +38,7 @@ typedef void virIfreq;

 int virNetDevSetupControl(const char *ifname,
                           virIfreq *ifr)
-    ATTRIBUTE_RETURN_CHECK ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
+    ATTRIBUTE_RETURN_CHECK;

 int virNetDevExists(const char *brname)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_RETURN_CHECK;

Jan




More information about the libvir-list mailing list