[patch] fix invalid free() in HEAD's readlink.c; take two
Bernhard Fischer
rep.nop at aon.at
Sun Sep 11 09:42:31 UTC 2005
It's too early. I'll try to wait until i'm really awake next time,
sorry.
Attached patch should be correct.
- free the buffer allocated by xreadlink(), i.e. when
CONFIG_FEATURE_READLINK_FOLLOW isn't set or no -f was given.
-------------- next part --------------
--- busybox.oorig/debianutils/readlink.c 2005-09-11 10:08:49.000000000 +0200
+++ busybox/debianutils/readlink.c 2005-09-11 11:40:38.000000000 +0200
@@ -31,6 +31,7 @@
# define READLINK_FLAG_f (1 << 0)
#else
# define READLINK_FOLLOW ""
+# define READLINK_FLAG_f (0)
#endif
static const char readlink_options[] = READLINK_FOLLOW;
@@ -57,7 +58,10 @@ int readlink_main(int argc, char **argv)
return EXIT_FAILURE;
puts(buf);
- if (ENABLE_FEATURE_CLEAN_UP) free(buf);
+ if (ENABLE_FEATURE_CLEAN_UP) {
+ if (!(opt & READLINK_FLAG_f))
+ free(buf);
+ }
return EXIT_SUCCESS;
}
More information about the busybox
mailing list