diff -rup Sys-Virt-0.1.2.orig/Virt.xs Sys-Virt-0.1.2.new/Virt.xs
--- Sys-Virt-0.1.2.orig/Virt.xs 2008-02-23 14:15:14.000000000 -0500
+++ Sys-Virt-0.1.2.new/Virt.xs 2008-03-07 17:36:28.000000000 -0500
@@ -197,13 +197,14 @@ list_domain_ids(con, maxids)
PPCODE:
Newx(ids, maxids, int);
if ((nid = virConnectListDomains(con, ids, maxids)) < 0) {
+ Safefree(ids);
_croak_error(virConnGetLastError(con));
}
EXTEND(SP, nid);
for (i = 0 ; i < nid ; i++) {
PUSHs(sv_2mortal(newSViv(ids[i])));
}
- free(ids);
+ Safefree(ids);
int
@@ -227,7 +228,7 @@ list_defined_domain_names(con, maxnames)
PPCODE:
Newx(names, maxnames, char *);
if ((ndom = virConnectListDefinedDomains(con, names, maxnames)) < 0) {
- free(names);
+ Safefree(names);
_croak_error(virConnGetLastError(con));
}
EXTEND(SP, ndom);
@@ -235,7 +236,7 @@ list_defined_domain_names(con, maxnames)
PUSHs(sv_2mortal(newSVpv(names[i], 0)));
free(names[i]);
}
- free(names);
+ Safefree(names);
int
@@ -258,6 +259,7 @@ list_network_names(con, maxnames)
PPCODE:
Newx(names, maxnames, char *);
if ((nnet = virConnectListNetworks(con, names, maxnames)) < 0) {
+ Safefree(names);
_croak_error(virConnGetLastError(con));
}
EXTEND(SP, nnet);
@@ -265,7 +267,7 @@ list_network_names(con, maxnames)
PUSHs(sv_2mortal(newSVpv(names[i], 0)));
free(names[i]);
}
- free(names);
+ Safefree(names);
int
@@ -289,7 +291,7 @@ list_defined_network_names(con, maxnames
PPCODE:
Newx(names, maxnames, char *);
if ((ndom = virConnectListDefinedNetworks(con, names, maxnames)) < 0) {
- free(names);
+ Safefree(names);
_croak_error(virConnGetLastError(con));
}
EXTEND(SP, ndom);
@@ -297,7 +299,7 @@ list_defined_network_names(con, maxnames
PUSHs(sv_2mortal(newSVpv(names[i], 0)));
free(names[i]);
}
- free(names);
+ Safefree(names);
void