diff options
author | kraai <kraai@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2001-07-19 15:00:14 +0000 |
---|---|---|
committer | kraai <kraai@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2001-07-19 15:00:14 +0000 |
commit | 9ec4938d047f631db0a910c17e73d7c5aff8e166 (patch) | |
tree | d372e32f465bdddb1a900a13303ed9ead4d0320f | |
parent | 4911c053c9b224b0418a9dacfd47f953e0f9ae25 (diff) | |
download | busybox-w32-9ec4938d047f631db0a910c17e73d7c5aff8e166.tar.gz busybox-w32-9ec4938d047f631db0a910c17e73d7c5aff8e166.tar.bz2 busybox-w32-9ec4938d047f631db0a910c17e73d7c5aff8e166.zip |
Add a RELEASE_BB_BUFFER macro and use it to fix a memory leak in syslogd.c
(noted by Adam Slattery).
git-svn-id: svn://busybox.net/trunk/busybox@3125 69ca8d6d-28ef-0310-b511-8ec308f3f277
-rw-r--r-- | busybox.h | 3 | ||||
-rw-r--r-- | include/busybox.h | 3 | ||||
-rw-r--r-- | sysklogd/syslogd.c | 1 | ||||
-rw-r--r-- | syslogd.c | 1 |
4 files changed, 8 insertions, 0 deletions
@@ -69,13 +69,16 @@ extern const struct BB_applet applets[]; | |||
69 | #ifdef BB_FEATURE_BUFFERS_GO_ON_STACK | 69 | #ifdef BB_FEATURE_BUFFERS_GO_ON_STACK |
70 | #define RESERVE_BB_BUFFER(buffer,len) char buffer[len] | 70 | #define RESERVE_BB_BUFFER(buffer,len) char buffer[len] |
71 | #define RESERVE_BB_UBUFFER(buffer,len) unsigned char buffer[len] | 71 | #define RESERVE_BB_UBUFFER(buffer,len) unsigned char buffer[len] |
72 | #define RELEASE_BB_BUFFER(buffer) ((void)0) | ||
72 | #else | 73 | #else |
73 | #ifdef BB_FEATURE_BUFFERS_GO_IN_BSS | 74 | #ifdef BB_FEATURE_BUFFERS_GO_IN_BSS |
74 | #define RESERVE_BB_BUFFER(buffer,len) static char buffer[len] | 75 | #define RESERVE_BB_BUFFER(buffer,len) static char buffer[len] |
75 | #define RESERVE_BB_UBUFFER(buffer,len) static unsigned char buffer[len] | 76 | #define RESERVE_BB_UBUFFER(buffer,len) static unsigned char buffer[len] |
77 | #define RELEASE_BB_BUFFER(buffer) ((void)0) | ||
76 | #else | 78 | #else |
77 | #define RESERVE_BB_BUFFER(buffer,len) char *buffer=xmalloc(len) | 79 | #define RESERVE_BB_BUFFER(buffer,len) char *buffer=xmalloc(len) |
78 | #define RESERVE_BB_UBUFFER(buffer,len) unsigned char *buffer=xmalloc(len) | 80 | #define RESERVE_BB_UBUFFER(buffer,len) unsigned char *buffer=xmalloc(len) |
81 | #define RELEASE_BB_BUFFER(buffer) free (buffer) | ||
79 | #endif | 82 | #endif |
80 | #endif | 83 | #endif |
81 | 84 | ||
diff --git a/include/busybox.h b/include/busybox.h index e8055b06c..f79dac8c8 100644 --- a/include/busybox.h +++ b/include/busybox.h | |||
@@ -69,13 +69,16 @@ extern const struct BB_applet applets[]; | |||
69 | #ifdef BB_FEATURE_BUFFERS_GO_ON_STACK | 69 | #ifdef BB_FEATURE_BUFFERS_GO_ON_STACK |
70 | #define RESERVE_BB_BUFFER(buffer,len) char buffer[len] | 70 | #define RESERVE_BB_BUFFER(buffer,len) char buffer[len] |
71 | #define RESERVE_BB_UBUFFER(buffer,len) unsigned char buffer[len] | 71 | #define RESERVE_BB_UBUFFER(buffer,len) unsigned char buffer[len] |
72 | #define RELEASE_BB_BUFFER(buffer) ((void)0) | ||
72 | #else | 73 | #else |
73 | #ifdef BB_FEATURE_BUFFERS_GO_IN_BSS | 74 | #ifdef BB_FEATURE_BUFFERS_GO_IN_BSS |
74 | #define RESERVE_BB_BUFFER(buffer,len) static char buffer[len] | 75 | #define RESERVE_BB_BUFFER(buffer,len) static char buffer[len] |
75 | #define RESERVE_BB_UBUFFER(buffer,len) static unsigned char buffer[len] | 76 | #define RESERVE_BB_UBUFFER(buffer,len) static unsigned char buffer[len] |
77 | #define RELEASE_BB_BUFFER(buffer) ((void)0) | ||
76 | #else | 78 | #else |
77 | #define RESERVE_BB_BUFFER(buffer,len) char *buffer=xmalloc(len) | 79 | #define RESERVE_BB_BUFFER(buffer,len) char *buffer=xmalloc(len) |
78 | #define RESERVE_BB_UBUFFER(buffer,len) unsigned char *buffer=xmalloc(len) | 80 | #define RESERVE_BB_UBUFFER(buffer,len) unsigned char *buffer=xmalloc(len) |
81 | #define RELEASE_BB_BUFFER(buffer) free (buffer) | ||
79 | #endif | 82 | #endif |
80 | #endif | 83 | #endif |
81 | 84 | ||
diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c index 8ae70a1ed..14219eb54 100644 --- a/sysklogd/syslogd.c +++ b/sysklogd/syslogd.c | |||
@@ -431,6 +431,7 @@ static int serveConnection (int conn) | |||
431 | /* Now log it */ | 431 | /* Now log it */ |
432 | logMessage (pri, line); | 432 | logMessage (pri, line); |
433 | } | 433 | } |
434 | RELEASE_BB_BUFFER (tmpbuf); | ||
434 | return n_read; | 435 | return n_read; |
435 | } | 436 | } |
436 | 437 | ||
@@ -431,6 +431,7 @@ static int serveConnection (int conn) | |||
431 | /* Now log it */ | 431 | /* Now log it */ |
432 | logMessage (pri, line); | 432 | logMessage (pri, line); |
433 | } | 433 | } |
434 | RELEASE_BB_BUFFER (tmpbuf); | ||
434 | return n_read; | 435 | return n_read; |
435 | } | 436 | } |
436 | 437 | ||