udhcp: handle errors in read_staticlease

also gets rid of ether-aton's static buffer in ether-wake:
   text   data    bss    dec    hexfilename
 838664    441   7572 846677  ceb55busybox_old
 838650    441   7564 846655  ceb3fbusybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/networking/ether-wake.c b/networking/ether-wake.c
index e05db7a..deeb68c 100644
--- a/networking/ether-wake.c
+++ b/networking/ether-wake.c
@@ -111,10 +111,9 @@
 {
 	struct ether_addr *eap;
 
-	eap = ether_aton(hostid);
+	eap = ether_aton_r(hostid, eaddr);
 	if (eap) {
-		*eaddr = *eap;
-		bb_debug_msg("The target station address is %s\n\n", ether_ntoa(eaddr));
+		bb_debug_msg("The target station address is %s\n\n", ether_ntoa(eap));
 #if !defined(__UCLIBC_MAJOR__) \
  || __UCLIBC_MAJOR__ > 0 \
  || __UCLIBC_MINOR__ > 9 \
@@ -122,8 +121,9 @@
 	} else if (ether_hostton(hostid, eaddr) == 0) {
 		bb_debug_msg("Station address for hostname %s is %s\n\n", hostid, ether_ntoa(eaddr));
 #endif
-	} else
+	} else {
 		bb_show_usage();
+	}
 }
 
 static int get_fill(unsigned char *pkt, struct ether_addr *eaddr, int broadcast)