Commit Graph

88 Commits

Author SHA1 Message Date
Hiltjo Posthuma a7afade170 clear passwords with explicit_bzero
Make sure to explicitly clear memory that is used for password input. memset
is often optimized out by the compiler.

Brought to attention by the OpenBSD community, see:
https://marc.info/?t=146989502600003&r=1&w=2
Thread subject: x11/slock: clear passwords with explicit_bzero

Changes:

- explicit_bzero.c import from libressl-portable.
- Makefile: add COMPATSRC for compatibility src.
- config.mk: add separate *BSD section in config.mk to simply uncomment it on
  these platforms.
2016-08-13 09:58:00 +02:00
Markus Teich 65b8d52788 Revert "No need for usage()"
This reverts most of commit a6dc051e37 and fixes
some related stuff:

- keep spelling fixes from original commit
- make -h and -v also work when followed by more arguments
- any unknown flag prints usage
- fix output of -v to display "slock: version 1.3" instead of "slock: slock-1.3"
2016-02-15 14:25:17 +01:00
Markus Teich ec46680fe1 revert using argv0 and minor fixup
- use hardcoded "slock" instead of argv[0]
- add "slock: " to fprintf calls, where it was missing
- revert `argc--, argv++` shifting
2016-02-15 14:00:56 +01:00
FRIGN b02c4d452a Use argv0 instead of passing "slock:" to die every time 2016-02-14 02:13:54 +01:00
FRIGN a6dc051e37 No need for usage()
There are 2 arguments why -v and -h are broken:

	1) if you are running off git, -v will show the last stable
           release, effectively making this option useless.
           people running stable versions leave open an attack surface
           this way in case there are vulnerabilities found.
           99% of the people are also using package managers to keep
           their software up to date, instead of running $TOOL -v to
           check how old it is.
        2) -h is a sad excuse for not just looking at the manual page
           (man 1 slock). Given we accept a post_lock_command, we can't
           be as liberal and just intercept certain flags.

I changed the manpage to reflect this change.
2016-02-14 02:00:14 +01:00
FRIGN bdcbeab0d8 Clarify config.def.h
Clear up the wording a bit and explain what failonclear means.
2016-02-14 01:33:18 +01:00
FRIGN 3abbffa493 Simplify the oom-taming-function
There really is no need to source a defined variable from a linux
header. The OOM-rank ranges from -1000 to 1000, so we can safely
hardcode -1000, which is a sane thing to do given slock is suid and
we don't want to play around too much here anyway.

On another notice, let's not forget that this still is a shitty
heuristic. The OOM-killer still can kill us (thus I also changed
the wording in the error-message. We do not disable the OOM-killer,
we're just hiding.
2016-02-14 01:28:37 +01:00
Markus Teich 6a52a85a1a add slock.1 man page 2016-02-11 16:51:12 +01:00
FRIGN c28ac1ebf1 Update license year
It actually was 2014 and not 2015.
2016-02-11 16:30:52 +01:00
FRIGN aa6a385341 Don't forget the E-Mail 2016-02-11 16:29:26 +01:00
FRIGN 6adeb1281e Add myself to License
forgot that a while ago
2016-02-11 16:28:41 +01:00
Markus Teich f6582b68b0 update copyright year in -v output 2016-02-11 16:26:12 +01:00
Markus Teich bfafc91da7 prepare 1.3 release 2016-02-11 16:23:48 +01:00
Markus Teich 32149e4043 remove .hgtags 2016-02-11 16:22:34 +01:00
Markus Teich 1766ecdfd4 add hint for suid to oom error message 2016-01-29 22:11:18 +01:00
Markus Teich 9dfe0ce531 error messages on grab failure 2016-01-18 16:49:15 +01:00
Markus Teich 55e827af0f code style fix 2016-01-18 16:47:41 +01:00
Markus Teich e867c38123 add option to run command after screen is locked 2015-12-26 19:27:01 +01:00
David Phillips b95ee111c7 Don't change to failure colour on success 2015-08-27 06:16:25 +02:00
David Phillips 0edbd2e016 Slightly safer OOM killer disablement in linux 2015-07-06 11:15:07 +02:00
Markus Teich 754195f8d7 rework setting window color 2015-05-08 18:07:05 +02:00
Markus Teich 10d4e479c5 consistently use () with sizeof 2015-05-08 16:44:18 +02:00
Nick Currier b1289f30b7 Option to not show failure color on clear 2015-05-08 16:44:06 +02:00
Markus Teich f5ef1b8eb5 resize lockscreen window after Xrandr resize 2015-04-01 23:25:47 +02:00
David Phillips f2ea92c3dd Blank the screen with color 0, add third color for failed logins
- Adds another color in config.def.h, COLOR_INIT
- Renames the colours from numerical ones to ones with meaningful names;
  COLOR_INPUT for when there is content in the input buffer and COLOR_EMPTY
  for when the input buffer has been cleared (backspaced or a failed attempt).
- Ensures XFreeColors frees the right number of colours. This is now derived
  from the size of `Lock->colors` rather than being an integer literal.
- Makes slock exhibit the behaviour described by Markus

The default colours are the same as the ones slock currently uses, with the
exception of the new color, which I have set to red, as it indicates someone
has either failed an attempt to unlock, or that they have entered input and
erased it all.
2015-04-01 23:13:11 +02:00
Anselm R Garbe a31b919111 applied Dimitris' style patch from Dec'14, with some minor modifications 2015-01-27 22:16:52 +01:00
Anselm R Garbe 66e31556db fixed usage string 2014-12-22 11:17:45 +01:00
Anselm R Garbe 44ce161c13 applied sin's patch and prepared new release 2014-12-22 11:16:26 +01:00
sin 4339b507af end{pw,sp}ent() can only be called after get{pw,sp}ent()
Calling them unconditionally can result in memory corruption.
2014-11-09 13:10:02 +00:00
sin 8745098fa4 Only check errno if getpwuid() fails
Checking errno otherwise is unspecified.
2014-07-09 14:41:32 +01:00
FRIGN 9db14b10dd Add /etc/passwd support
Fix slock to work with /etc/passwd without /etc/shadow.
while we're at it, remove an occurence of trailing whitespace.
2014-06-09 19:14:31 +01:00
sin 6a55128354 Set errno to 0 before getpwuid() and check it afterwards 2014-01-29 14:19:35 +00:00
Anselm R Garbe ba3acfc0dc applied Robert Schneider's Linux suggestions, also bumped version and updated LICENSE file's copyright notice 2013-08-02 22:11:18 +02:00
anselm@garbe.us 3092d3b314 prepared 1.1 2012-10-25 20:59:50 +02:00
garbeam@gmail.com d276b9b0e0 applied andres' multi-slock fix, thanks for spotting this issue 2012-08-02 21:54:18 +02:00
anselm@garbe.us 4b4fcca1bc added Ben's password placeholder entry kludge 2012-04-15 11:58:16 +02:00
anselm@garbe.us c1507cd225 applied Eckehard Bern's dualcolor patch to slock 2012-03-17 18:03:25 +01:00
anselm@garbe.us 88d9684966 Added tag 1.0 for changeset 05b949016e85 2012-02-11 10:51:31 +01:00
anselm@garbe.us 34f5edb29e preparing 1.0 2012-02-11 10:51:26 +01:00
anselm@garbe.us 0b13628462 select for SubstructureRedirectMask as well 2012-02-09 20:56:34 +01:00
anselm@garbe.us 7a217cb7c4 fixed missing new lines 2012-02-09 20:18:49 +01:00
anselm@garbe.us 5d433c7cf5 typo fix 2012-02-05 16:41:31 +01:00
anselm@garbe.us d6e9e7d9e3 added XRaiseWindow workaround when new clients are launched 2012-02-05 16:38:58 +01:00
garbeam@gmail.com f013cb264e applied Michaels patch 2012-01-24 22:10:02 +01:00
anselm@garbe.us 5a5c581285 added dummy error handler to prevent X from terminating slock just in case 2012-01-22 18:58:10 +01:00
Anselm R Garbe ede2935e10 applied Markus' patch to die in case /etc/passwd is unavailable 2011-04-21 08:22:47 +00:00
Anselm R Garbe 732d2b3bf5 applied Fernando Silveira's multiscreen patch for old style multihead setups 2009-11-26 12:53:26 +00:00
a@null 0cb05bdb75 applied Ali Gholami Rudi's patch regarding DPMS timeout customization and persistence 2008-12-12 19:34:43 +00:00
Anselm R Garbe cadc8a7472 Added tag 0.9 for changeset 1e8a77601cb9 2008-07-29 19:23:21 +01:00
Anselm R Garbe a6a3471dd9 fix 2008-07-29 19:17:24 +01:00