From d378c3149c6c24e7788f04a6d20ba360f3ea407e Mon Sep 17 00:00:00 2001 From: Robert Griebl Date: Fri, 19 Jul 2002 00:05:54 +0000 Subject: 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. --- loginutils/Makefile.in | 2 +- loginutils/getty.c | 11 ++++------- loginutils/passwd.c | 2 +- 3 files changed, 6 insertions(+), 9 deletions(-) (limited to 'loginutils') 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 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 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, 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 079791c4c..c8756211a 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) { -- cgit v1.2.3