aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmdedit.c12
-rw-r--r--coreutils/dd.c2
-rw-r--r--dd.c2
-rw-r--r--editors/sed.c4
-rw-r--r--fsck_minix.c6
-rw-r--r--mount.c2
-rw-r--r--sed.c4
-rw-r--r--shell/cmdedit.c12
-rw-r--r--umount.c5
-rw-r--r--util-linux/fsck_minix.c6
-rw-r--r--util-linux/mount.c2
-rw-r--r--util-linux/umount.c5
12 files changed, 48 insertions, 14 deletions
diff --git a/cmdedit.c b/cmdedit.c
index 0de18e81f..0ce64beeb 100644
--- a/cmdedit.c
+++ b/cmdedit.c
@@ -115,6 +115,18 @@ void cmdedit_reset_term(void)
if (reset_term)
/* sparc and other have broken termios support: use old termio handling. */
setTermSettings(fileno(stdin), (void*) &initial_settings);
+#ifdef BB_FEATURE_CLEAN_UP
+ if (his_front) {
+ struct history *n;
+ //while(his_front!=his_end) {
+ while(his_front!=his_end) {
+ n = his_front->n;
+ free(his_front->s);
+ free(his_front);
+ his_front=n;
+ }
+ }
+#endif
}
void clean_up_and_die(int sig)
diff --git a/coreutils/dd.c b/coreutils/dd.c
index 86899194c..6df2588ca 100644
--- a/coreutils/dd.c
+++ b/coreutils/dd.c
@@ -173,7 +173,7 @@ extern int dd_main(int argc, char **argv)
cleanup:
/* Note that we are not freeing memory or closing
* files here, to save a few bytes. */
-#if 0
+#ifdef BB_FEATURE_CLEAN_UP
close(inFd);
close(outFd);
free(buf);
diff --git a/dd.c b/dd.c
index 86899194c..6df2588ca 100644
--- a/dd.c
+++ b/dd.c
@@ -173,7 +173,7 @@ extern int dd_main(int argc, char **argv)
cleanup:
/* Note that we are not freeing memory or closing
* files here, to save a few bytes. */
-#if 0
+#ifdef BB_FEATURE_CLEAN_UP
close(inFd);
close(outFd);
free(buf);
diff --git a/editors/sed.c b/editors/sed.c
index b54a9bb9c..69a5e0324 100644
--- a/editors/sed.c
+++ b/editors/sed.c
@@ -92,7 +92,7 @@ static int ncmds = 0; /* number of sed commands */
/*static char *cur_file = NULL;*/ /* file currently being processed XXX: do I need this? */
-#if 0
+#ifdef BB_FEATURE_CLEAN_UP
static void destroy_cmd_strs()
{
if (sed_cmds == NULL)
@@ -663,7 +663,7 @@ extern int sed_main(int argc, char **argv)
{
int opt;
-#if 0
+#ifdef BB_FEATURE_CLEAN_UP
/* destroy command strings on exit */
if (atexit(destroy_cmd_strs) == -1) {
perror("sed");
diff --git a/fsck_minix.c b/fsck_minix.c
index c3c493fd2..f980fe9ea 100644
--- a/fsck_minix.c
+++ b/fsck_minix.c
@@ -1319,7 +1319,7 @@ static void alloc_name_list(void)
name_list[i] = xmalloc(sizeof(char) * BUFSIZ + 1);
}
-#if 0
+#ifdef BB_FEATURE_CLEAN_UP
/* execute this atexit() to deallocate name_list[] */
/* piptigger was here */
static void free_name_list(void)
@@ -1344,9 +1344,11 @@ extern int fsck_minix_main(int argc, char **argv)
int retcode = 0;
alloc_name_list();
+#ifdef BB_FEATURE_CLEAN_UP
/* Don't bother to free memory. Exit does
* that automagically, so we can save a few bytes */
- //atexit(free_name_list);
+ atexit(free_name_list);
+#endif
if (INODE_SIZE * MINIX_INODES_PER_BLOCK != BLOCK_SIZE)
die("bad inode size");
diff --git a/mount.c b/mount.c
index 610d12d34..6e95cdc79 100644
--- a/mount.c
+++ b/mount.c
@@ -347,9 +347,9 @@ extern int mount_main(int argc, char **argv)
mntentlist[i].mnt_opts, mntentlist[i].mnt_freq,
mntentlist[i].mnt_passno);
}
+#ifdef BB_FEATURE_CLEAN_UP
/* Don't bother to close files or free memory. Exit
* does that automagically, so we can save a few bytes */
-#if 0
free( mntentlist);
close(fd);
#endif
diff --git a/sed.c b/sed.c
index b54a9bb9c..69a5e0324 100644
--- a/sed.c
+++ b/sed.c
@@ -92,7 +92,7 @@ static int ncmds = 0; /* number of sed commands */
/*static char *cur_file = NULL;*/ /* file currently being processed XXX: do I need this? */
-#if 0
+#ifdef BB_FEATURE_CLEAN_UP
static void destroy_cmd_strs()
{
if (sed_cmds == NULL)
@@ -663,7 +663,7 @@ extern int sed_main(int argc, char **argv)
{
int opt;
-#if 0
+#ifdef BB_FEATURE_CLEAN_UP
/* destroy command strings on exit */
if (atexit(destroy_cmd_strs) == -1) {
perror("sed");
diff --git a/shell/cmdedit.c b/shell/cmdedit.c
index 0de18e81f..0ce64beeb 100644
--- a/shell/cmdedit.c
+++ b/shell/cmdedit.c
@@ -115,6 +115,18 @@ void cmdedit_reset_term(void)
if (reset_term)
/* sparc and other have broken termios support: use old termio handling. */
setTermSettings(fileno(stdin), (void*) &initial_settings);
+#ifdef BB_FEATURE_CLEAN_UP
+ if (his_front) {
+ struct history *n;
+ //while(his_front!=his_end) {
+ while(his_front!=his_end) {
+ n = his_front->n;
+ free(his_front->s);
+ free(his_front);
+ his_front=n;
+ }
+ }
+#endif
}
void clean_up_and_die(int sig)
diff --git a/umount.c b/umount.c
index df075f7d9..6a5e4cad8 100644
--- a/umount.c
+++ b/umount.c
@@ -142,7 +142,7 @@ char *mtab_next(void **iter)
/* Don't bother to clean up, since exit() does that
* automagically, so we can save a few bytes */
-#if 0
+#ifdef BB_FEATURE_CLEAN_UP
void mtab_free(void)
{
struct _mtab_entry_t *this, *next;
@@ -235,6 +235,9 @@ extern int umount_main(int argc, char **argv)
if (argc < 2) {
usage(umount_usage);
}
+#ifdef BB_FEATURE_CLEAN_UP
+ atexit(mtab_free);
+#endif
/* Parse any options */
while (--argc > 0 && **(++argv) == '-') {
diff --git a/util-linux/fsck_minix.c b/util-linux/fsck_minix.c
index c3c493fd2..f980fe9ea 100644
--- a/util-linux/fsck_minix.c
+++ b/util-linux/fsck_minix.c
@@ -1319,7 +1319,7 @@ static void alloc_name_list(void)
name_list[i] = xmalloc(sizeof(char) * BUFSIZ + 1);
}
-#if 0
+#ifdef BB_FEATURE_CLEAN_UP
/* execute this atexit() to deallocate name_list[] */
/* piptigger was here */
static void free_name_list(void)
@@ -1344,9 +1344,11 @@ extern int fsck_minix_main(int argc, char **argv)
int retcode = 0;
alloc_name_list();
+#ifdef BB_FEATURE_CLEAN_UP
/* Don't bother to free memory. Exit does
* that automagically, so we can save a few bytes */
- //atexit(free_name_list);
+ atexit(free_name_list);
+#endif
if (INODE_SIZE * MINIX_INODES_PER_BLOCK != BLOCK_SIZE)
die("bad inode size");
diff --git a/util-linux/mount.c b/util-linux/mount.c
index 610d12d34..6e95cdc79 100644
--- a/util-linux/mount.c
+++ b/util-linux/mount.c
@@ -347,9 +347,9 @@ extern int mount_main(int argc, char **argv)
mntentlist[i].mnt_opts, mntentlist[i].mnt_freq,
mntentlist[i].mnt_passno);
}
+#ifdef BB_FEATURE_CLEAN_UP
/* Don't bother to close files or free memory. Exit
* does that automagically, so we can save a few bytes */
-#if 0
free( mntentlist);
close(fd);
#endif
diff --git a/util-linux/umount.c b/util-linux/umount.c
index df075f7d9..6a5e4cad8 100644
--- a/util-linux/umount.c
+++ b/util-linux/umount.c
@@ -142,7 +142,7 @@ char *mtab_next(void **iter)
/* Don't bother to clean up, since exit() does that
* automagically, so we can save a few bytes */
-#if 0
+#ifdef BB_FEATURE_CLEAN_UP
void mtab_free(void)
{
struct _mtab_entry_t *this, *next;
@@ -235,6 +235,9 @@ extern int umount_main(int argc, char **argv)
if (argc < 2) {
usage(umount_usage);
}
+#ifdef BB_FEATURE_CLEAN_UP
+ atexit(mtab_free);
+#endif
/* Parse any options */
while (--argc > 0 && **(++argv) == '-') {