diff options
author | Denys Vlasenko | 2015-10-09 18:16:40 +0200 |
---|---|---|
committer | Denys Vlasenko | 2015-10-09 18:16:40 +0200 |
commit | 02859aaeb29fb83167364291f1ce26b54c23803b (patch) | |
tree | 93a30e982b81e3bde6af8800bcd0c8f3f0080f52 /networking | |
parent | e52da5570eb93d6cb2950e55c48bd22edb5a9f18 (diff) | |
download | busybox-02859aaeb29fb83167364291f1ce26b54c23803b.zip busybox-02859aaeb29fb83167364291f1ce26b54c23803b.tar.gz |
use auto_string() where appropriate to kill a few statics
Custom linker script 'busybox_ldscript' found, using it
function old new delta
static.str 4 - -4
static.passwd 4 0 -4
bb_ask 322 311 -11
ether_print 63 47 -16
UNSPEC_print 82 66 -16
INET_sprint 59 38 -21
INET6_sprint 54 30 -24
make_human_readable_str 292 235 -57
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 0/7 up/down: 0/-153) Total: -153 bytes
text data bss dec hex filename
939880 992 17480 958352 e9f90 busybox_old
939736 992 17456 958184 e9ee8 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'networking')
-rw-r--r-- | networking/interface.c | 24 |
1 files changed, 6 insertions, 18 deletions
diff --git a/networking/interface.c b/networking/interface.c index b0572d0..24bd13c 100644 --- a/networking/interface.c +++ b/networking/interface.c @@ -89,13 +89,9 @@ struct in6_ifreq { /* Display an Internet socket address. */ static const char* FAST_FUNC INET_sprint(struct sockaddr *sap, int numeric) { - static char *buff; /* defaults to NULL */ - if (sap->sa_family == 0xFFFF || sap->sa_family == 0) return "[NONE SET]"; - free(buff); - buff = INET_rresolve((struct sockaddr_in *) sap, numeric, 0xffffff00); - return buff; + return auto_string(INET_rresolve((struct sockaddr_in *) sap, numeric, 0xffffff00)); } #ifdef UNUSED_AND_BUGGY @@ -171,13 +167,9 @@ static const struct aftype inet_aftype = { /* dirty! struct sockaddr usually doesn't suffer for inet6 addresses, fst. */ static const char* FAST_FUNC INET6_sprint(struct sockaddr *sap, int numeric) { - static char *buff; - if (sap->sa_family == 0xFFFF || sap->sa_family == 0) return "[NONE SET]"; - free(buff); - buff = INET6_rresolve((struct sockaddr_in6 *) sap, numeric); - return buff; + return auto_string(INET6_rresolve((struct sockaddr_in6 *) sap, numeric)); } #ifdef UNUSED @@ -223,13 +215,11 @@ static const struct aftype inet6_aftype = { /* Display an UNSPEC address. */ static char* FAST_FUNC UNSPEC_print(unsigned char *ptr) { - static char *buff; - + char *buff; char *pos; unsigned int i; - if (!buff) - buff = xmalloc(sizeof(struct sockaddr) * 3 + 1); + buff = auto_string(xmalloc(sizeof(struct sockaddr) * 3 + 1)); pos = buff; for (i = 0; i < sizeof(struct sockaddr); i++) { /* careful -- not every libc's sprintf returns # bytes written */ @@ -712,14 +702,12 @@ static const struct hwtype loop_hwtype = { /* Display an Ethernet address in readable format. */ static char* FAST_FUNC ether_print(unsigned char *ptr) { - static char *buff; - - free(buff); + char *buff; buff = xasprintf("%02X:%02X:%02X:%02X:%02X:%02X", (ptr[0] & 0377), (ptr[1] & 0377), (ptr[2] & 0377), (ptr[3] & 0377), (ptr[4] & 0377), (ptr[5] & 0377) ); - return buff; + return auto_string(buff); } static const struct hwtype ether_hwtype = { |