Patchwork Replace non-portable asprintf by g_strdup_printf

login
register
mail settings
Submitter Stefan Weil
Date Jan. 16, 2013, 5:37 p.m.
Message ID <1358357843-4638-1-git-send-email-sw@weilnetz.de>
Download mbox | patch
Permalink /patch/212868/
State Accepted
Headers show

Comments

Stefan Weil - Jan. 16, 2013, 5:37 p.m.
g_strdup_printf already handles OOM errors, so some error handling in
QEMU code can be removed.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
---

TODO:

* hardware_address is set, but obviously never used.

* pathname has no free / g_free.

Regards,

Stefan Weil


 exec.c               |    8 +++-----
 qga/commands-posix.c |   13 +++++--------
 util/path.c          |    5 +----
 3 files changed, 9 insertions(+), 17 deletions(-)
Blue Swirl - Jan. 19, 2013, 2 p.m.
Thanks, applied. This fixes a warning on mingw32.

On Wed, Jan 16, 2013 at 5:37 PM, Stefan Weil <sw@weilnetz.de> wrote:
> g_strdup_printf already handles OOM errors, so some error handling in
> QEMU code can be removed.
>
> Signed-off-by: Stefan Weil <sw@weilnetz.de>
> ---
>
> TODO:
>
> * hardware_address is set, but obviously never used.
>
> * pathname has no free / g_free.
>
> Regards,
>
> Stefan Weil
>
>
>  exec.c               |    8 +++-----
>  qga/commands-posix.c |   13 +++++--------
>  util/path.c          |    5 +----
>  3 files changed, 9 insertions(+), 17 deletions(-)
>
> diff --git a/exec.c b/exec.c
> index 5689613..b85508b 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -863,18 +863,16 @@ static void *file_ram_alloc(RAMBlock *block,
>          return NULL;
>      }
>
> -    if (asprintf(&filename, "%s/qemu_back_mem.XXXXXX", path) == -1) {
> -        return NULL;
> -    }
> +    filename = g_strdup_printf("%s/qemu_back_mem.XXXXXX", path);
>
>      fd = mkstemp(filename);
>      if (fd < 0) {
>          perror("unable to create backing store for hugepages");
> -        free(filename);
> +        g_free(filename);
>          return NULL;
>      }
>      unlink(filename);
> -    free(filename);
> +    g_free(filename);
>
>      memory = (memory+hpagesize-1) & ~(hpagesize-1);
>
> diff --git a/qga/commands-posix.c b/qga/commands-posix.c
> index 77f6ee7..0ad73f3 100644
> --- a/qga/commands-posix.c
> +++ b/qga/commands-posix.c
> @@ -939,14 +939,11 @@ GuestNetworkInterfaceList *qmp_guest_network_get_interfaces(Error **errp)
>
>              mac_addr = (unsigned char *) &ifr.ifr_hwaddr.sa_data;
>
> -            if (asprintf(&info->value->hardware_address,
> -                         "%02x:%02x:%02x:%02x:%02x:%02x",
> -                         (int) mac_addr[0], (int) mac_addr[1],
> -                         (int) mac_addr[2], (int) mac_addr[3],
> -                         (int) mac_addr[4], (int) mac_addr[5]) == -1) {
> -                error_setg_errno(errp, errno, "failed to format MAC");
> -                goto error;
> -            }
> +            info->value->hardware_address =
> +                g_strdup_printf("%02x:%02x:%02x:%02x:%02x:%02x",
> +                                (int) mac_addr[0], (int) mac_addr[1],
> +                                (int) mac_addr[2], (int) mac_addr[3],
> +                                (int) mac_addr[4], (int) mac_addr[5]);
>
>              info->value->has_hardware_address = true;
>              close(sock);
> diff --git a/util/path.c b/util/path.c
> index 4c5b0f6..f0c6962 100644
> --- a/util/path.c
> +++ b/util/path.c
> @@ -47,10 +47,7 @@ static struct pathelem *new_entry(const char *root,
>  {
>      struct pathelem *new = malloc(sizeof(*new));
>      new->name = strdup(name);
> -    if (asprintf(&new->pathname, "%s/%s", root, name) == -1) {
> -        printf("Cannot allocate memory\n");
> -        exit(1);
> -    }
> +    new->pathname = g_strdup_printf("%s/%s", root, name);
>      new->num_entries = 0;
>      return new;
>  }
> --
> 1.7.10.4
>
>

Patch

diff --git a/exec.c b/exec.c
index 5689613..b85508b 100644
--- a/exec.c
+++ b/exec.c
@@ -863,18 +863,16 @@  static void *file_ram_alloc(RAMBlock *block,
         return NULL;
     }
 
-    if (asprintf(&filename, "%s/qemu_back_mem.XXXXXX", path) == -1) {
-        return NULL;
-    }
+    filename = g_strdup_printf("%s/qemu_back_mem.XXXXXX", path);
 
     fd = mkstemp(filename);
     if (fd < 0) {
         perror("unable to create backing store for hugepages");
-        free(filename);
+        g_free(filename);
         return NULL;
     }
     unlink(filename);
-    free(filename);
+    g_free(filename);
 
     memory = (memory+hpagesize-1) & ~(hpagesize-1);
 
diff --git a/qga/commands-posix.c b/qga/commands-posix.c
index 77f6ee7..0ad73f3 100644
--- a/qga/commands-posix.c
+++ b/qga/commands-posix.c
@@ -939,14 +939,11 @@  GuestNetworkInterfaceList *qmp_guest_network_get_interfaces(Error **errp)
 
             mac_addr = (unsigned char *) &ifr.ifr_hwaddr.sa_data;
 
-            if (asprintf(&info->value->hardware_address,
-                         "%02x:%02x:%02x:%02x:%02x:%02x",
-                         (int) mac_addr[0], (int) mac_addr[1],
-                         (int) mac_addr[2], (int) mac_addr[3],
-                         (int) mac_addr[4], (int) mac_addr[5]) == -1) {
-                error_setg_errno(errp, errno, "failed to format MAC");
-                goto error;
-            }
+            info->value->hardware_address =
+                g_strdup_printf("%02x:%02x:%02x:%02x:%02x:%02x",
+                                (int) mac_addr[0], (int) mac_addr[1],
+                                (int) mac_addr[2], (int) mac_addr[3],
+                                (int) mac_addr[4], (int) mac_addr[5]);
 
             info->value->has_hardware_address = true;
             close(sock);
diff --git a/util/path.c b/util/path.c
index 4c5b0f6..f0c6962 100644
--- a/util/path.c
+++ b/util/path.c
@@ -47,10 +47,7 @@  static struct pathelem *new_entry(const char *root,
 {
     struct pathelem *new = malloc(sizeof(*new));
     new->name = strdup(name);
-    if (asprintf(&new->pathname, "%s/%s", root, name) == -1) {
-        printf("Cannot allocate memory\n");
-        exit(1);
-    }
+    new->pathname = g_strdup_printf("%s/%s", root, name);
     new->num_entries = 0;
     return new;
 }