On 05/03/2013 08:53 AM, Michal Privoznik wrote:
---
src/nwfilter/nwfilter_dhcpsnoop.c | 22 +++++++++++-----------
src/nwfilter/nwfilter_driver.c | 7 +++----
src/nwfilter/nwfilter_ebiptables_driver.c | 2 +-
src/nwfilter/nwfilter_gentech_driver.c | 5 ++---
src/nwfilter/nwfilter_learnipaddr.c | 5 +----
5 files changed, 18 insertions(+), 23 deletions(-)
diff --git a/src/nwfilter/nwfilter_dhcpsnoop.c b/src/nwfilter/nwfilter_dhcpsnoop.c
@@ -1631,15 +1629,17 @@ virNWFilterDHCPSnoopReq(virNWFilterTechDriverPtr techdriver,
req->driver = driver;
req->techdriver = techdriver;
tmp = virNetDevGetIndex(ifname, &req->ifindex);
- req->linkdev = linkdev ? strdup(linkdev) : NULL;
req->nettype = nettype;
- req->ifname = strdup(ifname);
virMacAddrSet(&req->macaddr, macaddr);
- req->filtername = strdup(filtername);
req->vars = virNWFilterHashTableCreate(0);
+ req->linkdev = NULL;
+
+ if (VIR_STRDUP(req->ifname, ifname) < 0 ||
+ VIR_STRDUP(req->filtername, filtername) < 0 ||
+ (linkdev && VIR_STRDUP(req->linkdev, linkdev) < 0))
+ goto exit_snoopreqput;
Can be simplified by passing NULL source.
+++ b/src/nwfilter/nwfilter_ebiptables_driver.c
@@ -2982,7 +2982,7 @@ ebtablesCreateTmpSubChain(ebiptablesRuleInstPtr *inst,
switch (protoidx) {
case L2_PROTO_MAC_IDX:
- protostr = strdup("");
+ ignore_value(VIR_STRDUP_QUIET(protostr, ""));
You could use VIR_STRDUP here; it will be a double oom report (since the
code is just reporting OOM error a few lines later), but it will avoid
churn when you touch this function again for the virAsprintf/oom cleanup
pass. But I can also live with this patch as-is.
ACK.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org