diff options
author | Robert Griebl | 2002-07-19 00:05:54 +0000 |
---|---|---|
committer | Robert Griebl | 2002-07-19 00:05:54 +0000 |
commit | d378c3149c6c24e7788f04a6d20ba360f3ea407e (patch) | |
tree | 945ff88bbbde5a32c2b3342b22d801be90ea40f2 /loginutils | |
parent | 88947dd05e28a3b793b16dfd6db1b5414ca99017 (diff) | |
download | busybox-d378c3149c6c24e7788f04a6d20ba360f3ea407e.zip busybox-d378c3149c6c24e7788f04a6d20ba360f3ea407e.tar.gz |
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 cb6452c..1c5680a 100644 --- a/loginutils/Makefile.in +++ b/loginutils/Makefile.in @@ -40,7 +40,7 @@ needcrypt-$(CONFIG_LOGIN) := y needcrypt-$(CONFIG_SU) := y ifeq ($(needcrypt-y),y) - libraries-y +=-lcrypt + LIBRARIES += -lcrypt endif $(LOGINUTILS_DIR)$(LOGINUTILS_AR): $(patsubst %,$(LOGINUTILS_DIR)%, $(LOGINUTILS-y)) diff --git a/loginutils/getty.c b/loginutils/getty.c index 2144c95..0176d62 100644 --- a/loginutils/getty.c +++ b/loginutils/getty.c @@ -232,7 +232,7 @@ static void termio_final(struct options *op, struct termio *tp, struct chardata *cp); static int caps_lock(const char *s); static int bcode(const char *s); -static void error(const char *fmt, ...); +static void error(const char *fmt, ...) __attribute__ ((noreturn)); /* The following is used for understandable diagnostics. */ @@ -299,8 +299,7 @@ int getty_main(int argc, char **argv) int iv; iv = getpid(); - if (ioctl(0, TIOCSPGRP, &iv) < 0) - perror_msg("ioctl() TIOCSPGRP call failed"); + ioctl(0, TIOCSPGRP, &iv); } #endif /* Initialize the termio settings (raw mode, eight-bit, blocking i/o). */ @@ -368,7 +367,6 @@ int getty_main(int argc, char **argv) (void) execl(options.login, options.login, "--", logname, (char *) 0); error("%s: can't exec %s: %m", options.tty, options.login); - return (0); /* quiet GCC */ } /* parse-args - parse command-line arguments */ @@ -382,10 +380,9 @@ static void parse_args(int argc, char **argv, struct options *op) while (isascii(c = getopt(argc, argv, "I:LH:f:hil:mt:wn"))) { switch (c) { case 'I': - if (!(op->initstring = strdup(optarg))) { + if (!(op->initstring = strdup(optarg))) error("can't malloc initstring"); - break; - } + { char ch, *p, *q; int i; diff --git a/loginutils/passwd.c b/loginutils/passwd.c index 079791c..c875621 100644 --- a/loginutils/passwd.c +++ b/loginutils/passwd.c @@ -173,7 +173,7 @@ extern int passwd_main(int argc, char **argv) ruid = getuid(); pw = (struct passwd *) getpwuid(ruid); if (!pw) { - error_msg_and_die("Cannot determine your user name.\n"); + error_msg_and_die("Cannot determine your user name."); } myname = (char *) xstrdup(pw->pw_name); if (optind < argc) { |