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)) {
