diff options
author | Robert Griebl <griebl@gmx.de> | 2002-07-19 00:05:54 +0000 |
---|---|---|
committer | Robert Griebl <griebl@gmx.de> | 2002-07-19 00:05:54 +0000 |
commit | d378c3149c6c24e7788f04a6d20ba360f3ea407e (patch) | |
tree | 945ff88bbbde5a32c2b3342b22d801be90ea40f2 /loginutils | |
parent | 88947dd05e28a3b793b16dfd6db1b5414ca99017 (diff) | |
download | busybox-w32-d378c3149c6c24e7788f04a6d20ba360f3ea407e.tar.gz busybox-w32-d378c3149c6c24e7788f04a6d20ba360f3ea407e.tar.bz2 busybox-w32-d378c3149c6c24e7788f04a6d20ba360f3ea407e.zip |
Applied vodz' patches #49 and #50 (with a small correction in runshell.c)
#49: I found one memory overflow and memory leak in "ln" applet.
Last patch reduced also 54 bytes. ;)
#50: I found bug in loginutils/Makefile.in.
New patch have also new function to libbb and
aplied this to applets and other cosmetic changes.
Diffstat (limited to 'loginutils')
-rw-r--r-- | loginutils/Makefile.in | 2 | ||||
-rw-r--r-- | loginutils/getty.c | 11 | ||||
-rw-r--r-- | loginutils/passwd.c | 2 |
3 files changed, 6 insertions, 9 deletions
diff --git a/loginutils/Makefile.in b/loginutils/Makefile.in index cb6452c39..1c5680aa5 100644 --- a/loginutils/Makefile.in +++ b/loginutils/Makefile.in | |||
@@ -40,7 +40,7 @@ needcrypt-$(CONFIG_LOGIN) := y | |||
40 | needcrypt-$(CONFIG_SU) := y | 40 | needcrypt-$(CONFIG_SU) := y |
41 | 41 | ||
42 | ifeq ($(needcrypt-y),y) | 42 | ifeq ($(needcrypt-y),y) |
43 | libraries-y +=-lcrypt | 43 | LIBRARIES += -lcrypt |
44 | endif | 44 | endif |
45 | 45 | ||
46 | $(LOGINUTILS_DIR)$(LOGINUTILS_AR): $(patsubst %,$(LOGINUTILS_DIR)%, $(LOGINUTILS-y)) | 46 | $(LOGINUTILS_DIR)$(LOGINUTILS_AR): $(patsubst %,$(LOGINUTILS_DIR)%, $(LOGINUTILS-y)) |
diff --git a/loginutils/getty.c b/loginutils/getty.c index 2144c95ff..0176d621c 100644 --- a/loginutils/getty.c +++ b/loginutils/getty.c | |||
@@ -232,7 +232,7 @@ static void termio_final(struct options *op, struct termio *tp, | |||
232 | struct chardata *cp); | 232 | struct chardata *cp); |
233 | static int caps_lock(const char *s); | 233 | static int caps_lock(const char *s); |
234 | static int bcode(const char *s); | 234 | static int bcode(const char *s); |
235 | static void error(const char *fmt, ...); | 235 | static void error(const char *fmt, ...) __attribute__ ((noreturn)); |
236 | 236 | ||
237 | /* The following is used for understandable diagnostics. */ | 237 | /* The following is used for understandable diagnostics. */ |
238 | 238 | ||
@@ -299,8 +299,7 @@ int getty_main(int argc, char **argv) | |||
299 | int iv; | 299 | int iv; |
300 | 300 | ||
301 | iv = getpid(); | 301 | iv = getpid(); |
302 | if (ioctl(0, TIOCSPGRP, &iv) < 0) | 302 | ioctl(0, TIOCSPGRP, &iv); |
303 | perror_msg("ioctl() TIOCSPGRP call failed"); | ||
304 | } | 303 | } |
305 | #endif | 304 | #endif |
306 | /* Initialize the termio settings (raw mode, eight-bit, blocking i/o). */ | 305 | /* Initialize the termio settings (raw mode, eight-bit, blocking i/o). */ |
@@ -368,7 +367,6 @@ int getty_main(int argc, char **argv) | |||
368 | 367 | ||
369 | (void) execl(options.login, options.login, "--", logname, (char *) 0); | 368 | (void) execl(options.login, options.login, "--", logname, (char *) 0); |
370 | error("%s: can't exec %s: %m", options.tty, options.login); | 369 | error("%s: can't exec %s: %m", options.tty, options.login); |
371 | return (0); /* quiet GCC */ | ||
372 | } | 370 | } |
373 | 371 | ||
374 | /* parse-args - parse command-line arguments */ | 372 | /* parse-args - parse command-line arguments */ |
@@ -382,10 +380,9 @@ static void parse_args(int argc, char **argv, struct options *op) | |||
382 | while (isascii(c = getopt(argc, argv, "I:LH:f:hil:mt:wn"))) { | 380 | while (isascii(c = getopt(argc, argv, "I:LH:f:hil:mt:wn"))) { |
383 | switch (c) { | 381 | switch (c) { |
384 | case 'I': | 382 | case 'I': |
385 | if (!(op->initstring = strdup(optarg))) { | 383 | if (!(op->initstring = strdup(optarg))) |
386 | error("can't malloc initstring"); | 384 | error("can't malloc initstring"); |
387 | break; | 385 | |
388 | } | ||
389 | { | 386 | { |
390 | char ch, *p, *q; | 387 | char ch, *p, *q; |
391 | int i; | 388 | int i; |
diff --git a/loginutils/passwd.c b/loginutils/passwd.c index 079791c4c..c8756211a 100644 --- a/loginutils/passwd.c +++ b/loginutils/passwd.c | |||
@@ -173,7 +173,7 @@ extern int passwd_main(int argc, char **argv) | |||
173 | ruid = getuid(); | 173 | ruid = getuid(); |
174 | pw = (struct passwd *) getpwuid(ruid); | 174 | pw = (struct passwd *) getpwuid(ruid); |
175 | if (!pw) { | 175 | if (!pw) { |
176 | error_msg_and_die("Cannot determine your user name.\n"); | 176 | error_msg_and_die("Cannot determine your user name."); |
177 | } | 177 | } |
178 | myname = (char *) xstrdup(pw->pw_name); | 178 | myname = (char *) xstrdup(pw->pw_name); |
179 | if (optind < argc) { | 179 | if (optind < argc) { |