diff options
author | Mark Whitley <markw@lineo.com> | 2001-04-30 18:17:00 +0000 |
---|---|---|
committer | Mark Whitley <markw@lineo.com> | 2001-04-30 18:17:00 +0000 |
commit | 8a633268ef478a31bd649d582ce07e9c26a4a03a (patch) | |
tree | a90a2bc3c3815f7f0e70f009b9b175736902a848 /miscutils | |
parent | 6f343944548c2e41fde4a376e805bf322a8e01c9 (diff) | |
download | busybox-w32-8a633268ef478a31bd649d582ce07e9c26a4a03a.tar.gz busybox-w32-8a633268ef478a31bd649d582ce07e9c26a4a03a.tar.bz2 busybox-w32-8a633268ef478a31bd649d582ce07e9c26a4a03a.zip |
Made new xreadlink function for libbb and changed applets to use it instead of
readlink(2).
Diffstat (limited to 'miscutils')
-rw-r--r-- | miscutils/readlink.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/miscutils/readlink.c b/miscutils/readlink.c index 74196e11d..226649544 100644 --- a/miscutils/readlink.c +++ b/miscutils/readlink.c | |||
@@ -30,21 +30,17 @@ | |||
30 | int readlink_main(int argc, char **argv) | 30 | int readlink_main(int argc, char **argv) |
31 | { | 31 | { |
32 | char *buf = NULL; | 32 | char *buf = NULL; |
33 | int bufsize = 128, size = 128; | 33 | |
34 | /* no options, no getopt */ | ||
34 | 35 | ||
35 | if (argc != 2) | 36 | if (argc != 2) |
36 | show_usage(); | 37 | show_usage(); |
37 | 38 | ||
38 | while (bufsize < size + 1) { | 39 | buf = xreadlink(argv[1]); |
39 | bufsize *= 2; | ||
40 | buf = xrealloc(buf, bufsize); | ||
41 | size = readlink(argv[1], buf, bufsize); | ||
42 | if (size == -1) | ||
43 | perror_msg_and_die("%s", argv[1]); | ||
44 | } | ||
45 | |||
46 | buf[size] = '\0'; | ||
47 | puts(buf); | 40 | puts(buf); |
41 | #ifdef BB_FEATURE_CLEAN_UP | ||
42 | free(buf); | ||
43 | #endif | ||
48 | 44 | ||
49 | return EXIT_SUCCESS; | 45 | return EXIT_SUCCESS; |
50 | } | 46 | } |