summaryrefslogtreecommitdiff
path: root/loginutils
diff options
context:
space:
mode:
authorRobert Griebl2002-07-19 00:05:54 +0000
committerRobert Griebl2002-07-19 00:05:54 +0000
commitd378c3149c6c24e7788f04a6d20ba360f3ea407e (patch)
tree945ff88bbbde5a32c2b3342b22d801be90ea40f2 /loginutils
parent88947dd05e28a3b793b16dfd6db1b5414ca99017 (diff)
downloadbusybox-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.in2
-rw-r--r--loginutils/getty.c11
-rw-r--r--loginutils/passwd.c2
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) {