diff --git a/tools/virsh-network.c b/tmp/virsh-network.c
index 5786ca2..92364d3 100644
--- a/tools/virsh-network.c
+++ b/tools/virsh-network.c
@@ -1175,7 +1175,7 @@ vshNetworkDHCPLeaseSorter(const void *a, const void *b)
 
     switch ((*lease1)->type) {
     case VIR_IP_ADDR_TYPE_IPV4:
-        ignore_value(virAsprintf(&id1, "%s", (*lease1)->id.mac));
+        ignore_value(VIR_STRDUP(id1, (*lease1)->id.mac));
         break;
     case VIR_IP_ADDR_TYPE_IPV6:
         ignore_value(virAsprintf(&id1, "%lu", (*lease1)->id.iaid));
@@ -1183,7 +1183,7 @@ vshNetworkDHCPLeaseSorter(const void *a, const void *b)
     }
     switch ((*lease2)->type) {
     case VIR_IP_ADDR_TYPE_IPV4:
-        ignore_value(virAsprintf(&id2, "%s", (*lease2)->id.mac));
+        ignore_value(VIR_STRDUP(id2, (*lease1)->id.mac));
         break;
     case VIR_IP_ADDR_TYPE_IPV6:
         ignore_value(virAsprintf(&id2, "%lu", (*lease2)->id.iaid));
@@ -1245,7 +1245,7 @@ cmdNetworkDHCPLeases(vshControl *ctl, const vshCmd *cmd)
         switch (lease->type) {
         case VIR_IP_ADDR_TYPE_IPV4:
             type = "ipv4";
-            ignore_value(virAsprintf(&id, "%s", lease->id.mac));
+            ignore_value(VIR_STRDUP(id, lease->id.mac));
             break;
         case VIR_IP_ADDR_TYPE_IPV6:
             type = "ipv6";
