busybox/libbb
Jonathan Liu b6dc13c2d3 sulogin: allow system maintenance login if root password is empty
The current password checking is unable to distinguish between the user
entering an empty password or pressing Control-D. As a result, an empty
password always results in normal startup.

We modify bb_ask to return NULL if Control-D is pressed without entering
a password. The sulogin applet is then modified to only proceed to
normal startup if bb_ask returns NULL. This covers EOF with no password,
interrupt by timeout and ^C.

Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-05-21 17:01:55 +02:00
..
appletlib.c make --help return exitcode 0. Closes 5612 2013-02-28 12:34:18 +01:00
ask_confirmation.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
bb_askpass.c sulogin: allow system maintenance login if root password is empty 2013-05-21 17:01:55 +02:00
bb_bswap_64.c *: deinline SWAP_xE64 on 32-bit CPUs. Wins !90 bytes both on 32 and 64 bits 2010-10-18 11:40:26 +02:00
bb_do_delay.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
bb_pwd.c libbb: make user/group name cache strings longer (~27 chars) 2011-03-01 16:27:13 +01:00
bb_qsort.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
bb_strtod.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
bb_strtonum.c libbb/bb_strtonum: always set end ptr, even on error return 2011-12-22 13:00:32 +01:00
change_identity.c *: introduce and use FAST_FUNC: regparm on i386, otherwise no-on 2008-06-27 02:52:20 +00:00
chomp.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
compare_string_array.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
concat_path_file.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
concat_subpath_file.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
Config.src sha3: make size/speed optimization decision configurable 2013-01-15 01:12:26 +01:00
copy_file.c libbb/copy_file.c: use smallints instead of signed chars 2011-01-28 19:14:17 +01:00
copyfd.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
correct_password.c refactor correct_password.c to avoid one if 2012-09-04 12:26:20 +02:00
crc32.c whitespace fixes 2011-02-03 00:05:48 +01:00
create_icmp6_socket.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
create_icmp_socket.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
default_error_retval.c libbb: xfunc_error_retval can be a byte 2010-09-01 16:04:24 +02:00
device_open.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
die_if_bad_username.c die_if_bad_username: tighten up a bit 2011-08-09 04:05:13 +02:00
dump.c hexdump: don't unconditionally limit the usable address range 2013-03-27 15:15:33 +01:00
endofname.c move endofname() to libbb 2013-02-26 00:36:53 +01:00
execable.c libbb: make BB_EXECVP/LP try to exec real binary if there's no /proc/self/exe 2011-02-02 03:28:56 +01:00
fclose_nonstdin.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
fflush_stdout_and_exit.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
fgets_str.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
find_mount_point.c find_mount_point: fix find_mount_point for char devices 2012-01-18 01:49:11 +01:00
find_pid_by_name.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
find_root_device.c plug a DIR* leak on error path 2010-12-28 10:25:03 +01:00
full_write.c *: whitespace fixes 2010-10-28 18:57:19 +02:00
get_console.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
get_cpu_count.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
get_last_path_component.c find: cater for libc w/o FNM_CASEFOLD 2011-05-23 00:40:54 +02:00
get_line_from_file.c libbb: split bb_get_chunk_from_file and bb_get_chunk_with_continuation 2011-06-17 03:37:43 +02:00
get_shell_name.c mark get_shell_name FAST_FUNC 2012-10-03 09:42:21 +02:00
get_volsize.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
getopt32.c randomconfig fixes 2011-08-10 00:51:29 +02:00
getpty.c Fixes for warnings in FreeBSD build 2011-08-28 05:31:49 +02:00
hash_md5_sha.c sha3: code shrink 2013-01-20 00:38:09 +01:00
hash_md5prime.c regularize options which control size/speed trade 2011-09-10 13:25:57 +02:00
herror_msg.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
human_readable.c *: whitespace fixes 2010-10-28 18:57:19 +02:00
inet_cksum.c inet_cksum: big-endian fix 2011-09-08 10:59:26 +02:00
inet_common.c whitespace cleanup. no code changes 2013-01-14 15:57:44 +01:00
info_msg.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
inode_hash.c *: whitespace fixes 2010-10-28 18:57:19 +02:00
isdirectory.c libbb: remove is_directory's argument which is always NULL 2011-12-18 03:27:46 +01:00
Kbuild.src fix build breakage found by randconfig 2012-04-20 14:48:00 +02:00
kernel_version.c get_linux_version_code: don't fail on Linux version strints like "3.0-foo" 2012-05-05 17:47:23 +02:00
last_char_is.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
lineedit_ptr_hack.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
lineedit.c ash,hush: history builtin 2013-04-07 18:47:24 +02:00
llist.c main: free suid_config list after use 2011-05-16 12:21:31 +02:00
login.c libbb: introduce and use strftime_[YYYYMMDD]HHMMSS() 2013-03-29 12:30:33 +01:00
loop.c whitespace cleanup. no code changes 2013-01-14 15:57:44 +01:00
make_directory.c unzip: ignore chmod errors 2012-05-28 01:29:15 +02:00
makedev.c nicer looking ifdef in libbb/makedev.c 2011-01-24 23:53:12 +01:00
match_fstype.c Fix compile breakage 2011-09-07 22:19:46 +02:00
messages.c save 10 bytes on strings 2011-02-10 10:01:49 +01:00
missing_syscalls.c libbb: add missing_syscalls.c: for now, only Android syscalls 2012-06-10 14:40:30 +02:00
mode_string.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
mtab.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
obscure.c a few tweaks for bionic 2011-07-08 08:34:28 +02:00
parse_config.c mdev: do not treat non-leading '#' chars as start of comment. Closes 4676 2012-01-11 00:37:17 +01:00
parse_mode.c *: whitespace fixes 2010-10-28 18:57:19 +02:00
percent_decode.c wget: URL-decode user:password before base64-encoding it into auth hdr. Closes 3625. 2011-09-11 21:04:02 +02:00
perror_msg.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
perror_nomsg_and_die.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
perror_nomsg.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
pidfile.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
platform.c vasprintf: return -1 on strdup failure 2013-02-10 23:03:38 +01:00
print_flags.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
printable_string.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
printable.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
process_escape_sequence.c libbb/process_escape_sequence.c: fix recently broken handling of \\ 2010-10-25 12:14:21 +02:00
procps.c whitespace cleanup. no code changes 2013-01-14 15:57:44 +01:00
progress.c libbb: make warning go away 2011-03-12 02:19:50 +01:00
ptr_to_globals.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
pw_encrypt_des.c des encrypt: fix goof with NUL byte added at the end as '.' 2009-05-01 03:41:25 +02:00
pw_encrypt_md5.c *: pass md5/shaN context pointer as 1st arg, not last 2010-10-16 20:45:27 +02:00
pw_encrypt_sha.c libbb/pw_encrypt_sha: forgot to move &ctx to 1st param here in sha hash rework 2010-12-01 13:57:25 +01:00
pw_encrypt.c adduser: safe username passing to passwd/addgroup 2011-05-13 03:19:01 +02:00
read_key.c Add comments in keyboard escape sequences table 2012-06-11 14:40:17 +02:00
read_printf.c preparatory cleanups for seamless uncompression improvements 2012-03-06 16:23:50 +01:00
read.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
README *: trailing empty lines removed 2010-07-26 01:49:12 +02:00
recursive_action.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
remove_file.c ln: support -T and -v 2012-05-06 13:18:35 +02:00
rtc.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
run_shell.c *: s/"/bin/sh"/DEFAULT_SHELL, run_shell() API fix, remove unneeded strdup 2010-06-27 03:23:31 +02:00
safe_gethostname.c sendmail: use host rather than NIS domain name for HELO 2012-04-28 17:04:19 +02:00
safe_poll.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
safe_strncpy.c klogd: do not log partial lines 2010-10-19 23:07:49 +02:00
safe_write.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
selinux_common.c whitespace cleanup. no code changes 2013-01-14 15:57:44 +01:00
setup_environment.c su: do not change to home dir unless -l 2012-06-12 13:21:02 +02:00
signals.c libbb: correctness/size tweaks in signal-related helpers 2012-09-27 13:20:34 +02:00
simplify_path.c whitespace cleanup 2010-10-29 11:46:52 +02:00
single_argv.c basename,dirname,freeramdisk,rx,raidautorun,runsv,chvt: skip "--" argument 2011-04-11 03:58:30 +02:00
skip_whitespace.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
speed_table.c *: whitespace fixes 2010-10-28 18:57:19 +02:00
str_tolower.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
strrstr.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
systemd_support.c typo fix 2011-02-12 01:56:25 +01:00
time.c libbb: introduce and use strftime_[YYYYMMDD]HHMMSS() 2013-03-29 12:30:33 +01:00
trim.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
u_signal_names.c kill[all[5]],pkill: make signal list show signal numbers, and show RTMIN/MAX 2011-01-03 13:08:58 +01:00
udp_io.c Fixes for warnings in FreeBSD build 2011-08-28 05:31:49 +02:00
unicode.c lineedit: fixes for CONFIG_UNICODE_USING_LOCALE=y 2011-03-27 01:18:07 +01:00
update_passwd.c type fix in comment 2010-11-03 02:48:43 +01:00
utmp.c move utmp.h include to libbb.h 2011-01-25 23:21:46 +01:00
uuencode.c libbb: shrink base64 decoding a bit 2011-10-28 16:15:00 +02:00
vdprintf.c libbb.h: remove unused defines 2011-10-24 04:06:18 +02:00
verror_msg.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
vfork_daemon_rexec.c bb_daemonize_or_rexec(): add flag to double-fork; use it in start-stop-daemon 2011-11-09 19:44:37 +01:00
warn_ignoring_args.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
wfopen_input.c *: whitespace fixes 2010-10-28 18:57:19 +02:00
wfopen.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
write.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
xatonum_template.c whitespace fixes. no code changes 2013-01-15 13:58:01 +01:00
xatonum.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
xconnect.c Make unix (local) sockets work without IPv6 enabled 2012-02-09 15:14:33 +01:00
xfunc_die.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
xfuncs_printf.c su: do not change to home dir unless -l 2012-06-12 13:21:02 +02:00
xfuncs.c libbb: make ndelay_no/off a bit more clever. +14 bytes 2011-01-24 00:29:55 +01:00
xgetcwd.c *: whitespace fixes 2010-10-28 18:57:19 +02:00
xgethostbyname.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
xreadlink.c readlink: uClibc supports automatic allocation too now 2013-03-12 11:14:24 -04:00
xrealloc_vector.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
xregcomp.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00

Please see the LICENSE file for copyright information (GPLv2)

libbb is BusyBox's utility library.  All of this stuff used to be stuffed into
a single file named utility.c.  When I split utility.c to create libbb, some of
the very oldest stuff ended up without their original copyright and licensing
information (which is now lost in the mists of time).  If you see something
that you wrote that is mis-attributed, do let me know so we can fix that up.

	Erik Andersen
	<andersen@codepoet.org>