Plug some leaks

Change-Id: I4268ea32cfb0ebd6ce5711e30865750dffa94e92
diff --git a/server/BandwidthController.cpp b/server/BandwidthController.cpp
index e1db680..2fe249d 100644
--- a/server/BandwidthController.cpp
+++ b/server/BandwidthController.cpp
@@ -1100,12 +1100,12 @@
         return -1;
     }
 
-    asprintf(&alertName, "%sAlert", costName);
     if (!*alertBytes) {
         ALOGE("No prior alert set for %s alert", costName);
         return -1;
     }
 
+    asprintf(&alertName, "%sAlert", costName);
     asprintf(&chainName, "bw_costly_%s", costName);
     asprintf(&alertQuotaCmd, ALERT_IPT_TEMPLATE, "-D", chainName, *alertBytes, alertName);
     res |= runIpxtablesCmd(alertQuotaCmd, IptJumpNoAdd);
diff --git a/server/PppController.cpp b/server/PppController.cpp
index 6b54c31..581b9c6 100644
--- a/server/PppController.cpp
+++ b/server/PppController.cpp
@@ -85,6 +85,8 @@
         char *lr;
 
         asprintf(&lr, "%s:%s", l, r);
+        free(l);
+        free(r);
 
         snprintf(dev, sizeof(dev), "/dev/%s", tty);
 
@@ -94,6 +96,9 @@
                   lr, "ms-dns", d1, "ms-dns", d2, "lcp-max-configure", "99999", (char *) NULL)) {
             ALOGE("execl failed (%s)", strerror(errno));
         }
+        free(lr);
+        free(d1);
+        free(d2);
         ALOGE("Should never get here!");
         return 0;
     } else {
diff --git a/server/TetherController.cpp b/server/TetherController.cpp
index fb51c06..4e1c52f 100644
--- a/server/TetherController.cpp
+++ b/server/TetherController.cpp
@@ -158,6 +158,8 @@
             char *start = strdup(inet_ntoa(addrs[addrIndex++]));
             char *end = strdup(inet_ntoa(addrs[addrIndex++]));
             asprintf(&(args[nextArg++]),"--dhcp-range=%s,%s,1h", start, end);
+            free(start);
+            free(end);
         }
 
         if (execv(args[0], args)) {