Index: /trunk/wifidog/src/firewall.c
===================================================================
--- /trunk/wifidog/src/firewall.c	(revision 449)
+++ /trunk/wifidog/src/firewall.c	(revision 451)
@@ -110,5 +110,6 @@
 {
     FILE           *proc;
-    char            *ip, *mac;
+	 char ip[16];
+	 char mac[18];
 	 char * reply;
 
@@ -116,28 +117,16 @@
         return NULL;
     }
-    if (!(ip = malloc(16))) {
-		 debug(LOG_CRIT, "Cannot allocate 16 bytes of memory for IP, Banzai!");
-		 exit(1);
-	 }
-    if (!(mac = malloc(18))) {
-		 debug(LOG_CRIT, "Cannot allocate 18 bytes of memory for MAC, Banzai!");
-		 exit(1);
-	 }
 
     /* Skip first line */
 	 while (!feof(proc) && fgetc(proc) != '\n');
 
-	 /* Find ip, put mac in reply */
+	 /* Find ip, copy mac in reply */
 	 reply = NULL;
     while (!feof(proc) && (fscanf(proc, " %15[0-9.] %*s %*s %17[A-F0-9:] %*s %*s", ip, mac) == 2)) {
 		  if (strcmp(ip, req_ip) == 0) {
-				reply = mac;
+				reply = strdup(mac);
 				break;
 		  }
     }
-
-    free(ip);
-	 if (!reply)
-		 free(mac);
 
     fclose(proc);
Index: /trunk/wifidog/src/util.c
===================================================================
--- /trunk/wifidog/src/util.c	(revision 426)
+++ /trunk/wifidog/src/util.c	(revision 451)
@@ -103,6 +103,8 @@
 	h_addr = (struct in_addr *)malloc(sizeof(struct in_addr));
 	
-	if (h_addr == NULL)
-		return NULL;
+	if (h_addr == NULL) {
+		debug(LOG_CRIT, "Failed to allocate memory for in_addr");
+		exit(1);
+	}
 	
 	LOCK_GHBN();
Index: /trunk/wifidog/src/ping_thread.c
===================================================================
--- /trunk/wifidog/src/ping_thread.c	(revision 450)
+++ /trunk/wifidog/src/ping_thread.c	(revision 451)
@@ -193,9 +193,12 @@
 	}
 	if ((fh = fopen("/proc/loadavg", "r"))) {
-		fscanf(fh, "%*s %f", &sys_load);
+		fscanf(fh, "%f", &sys_load);
 		fclose(fh);
 	}
 
-	snprintf(request, sizeof(request) - 1, "GET %sping/?gw_id=%s&sys_uptime=%lu&sys_memfree=%u&sys_load=%f HTTP/1.0\n"
+	/*
+	 * Prep & send request
+	 */
+	snprintf(request, sizeof(request) - 1, "GET %sping/?gw_id=%s&sys_uptime=%lu&sys_memfree=%u&sys_load=%.2f HTTP/1.0\n"
 			"User-Agent: WiFiDog %s\n"
 			"Host: %s\n"
