aboutsummaryrefslogtreecommitdiff
path: root/loginutils/vlock.c
diff options
context:
space:
mode:
Diffstat (limited to 'loginutils/vlock.c')
-rw-r--r--loginutils/vlock.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/loginutils/vlock.c b/loginutils/vlock.c
index 7a44d9405..1414613de 100644
--- a/loginutils/vlock.c
+++ b/loginutils/vlock.c
@@ -27,10 +27,7 @@ static unsigned long o_lock_all;
static void release_vt(int signo)
{
- if (!o_lock_all)
- ioctl(vfd, VT_RELDISP, 1);
- else
- ioctl(vfd, VT_RELDISP, 0);
+ ioctl(vfd, VT_RELDISP, !o_lock_all);
}
static void acquire_vt(int signo)
@@ -50,6 +47,11 @@ int vlock_main(int argc, char **argv)
struct sigaction sa;
struct vt_mode vtm;
struct termios term;
+ uid_t uid = getuid();
+
+ pw = getpwuid(uid);
+ if (pw == NULL)
+ bb_error_msg_and_die("unknown uid %d", uid);
if (argc > 2) {
bb_show_usage();
@@ -57,10 +59,6 @@ int vlock_main(int argc, char **argv)
o_lock_all = getopt32(argc, argv, "a");
- if((pw = getpwuid(getuid())) == NULL) {
- bb_error_msg_and_die("unknown uid %d", getuid());
- }
-
vfd = xopen(CURRENT_TTY, O_RDWR);
if (ioctl(vfd, VT_GETMODE, &vtm) < 0) {