die_if_bad_username: tighten up a bit
authorDenys Vlasenko <vda.linux@googlemail.com>
Tue, 9 Aug 2011 02:05:13 +0000 (04:05 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Tue, 9 Aug 2011 02:05:13 +0000 (04:05 +0200)
commit7485086f1eca78998d6cd31b0ce18a8a8ea3fc35
treead3a754a07e29b0c86514bdac98c63618628b37d
parent6e42b89b8d136316e1b97b56cf885e8ef9d64caf
die_if_bad_username: tighten up a bit

function                                             old     new   delta
die_if_bad_username                                   77      97     +20

Based on patches from Tito.
The changes are:
better comments
we disallow '@' now - in practice such usernames will be unusable
use of the portable filename character set plus '$'
don't use isalnum as it allows non-ASCII letters in legacy 8-bit locales (pointed out by Rich Felker)
enforce maximum length of LOGIN_NAME_MAX (including NUL)
don't allow '$', '.', and '-' as first char
don't print the illegal char in error message as if it is a wide char it will be unreadable
print the position of the illegal character

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
libbb/die_if_bad_username.c