mirror of
git://git.code.sf.net/p/xtables-addons/xtables-addons
synced 2025-09-07 05:05:12 +02:00
xt_SYSRQ: fix a couple of problems
The first problem is that the error response from crypto_alloc_hash() should be extracted from the pointer before setting the pointer to NULL. The second error is that only the first half of the password hash is checked which slightly weakens the password checking. Signed-off-by: John Haxby <john.haxby@oracle.com>
This commit is contained in:

committed by
Jan Engelhardt

parent
4dcefe4b95
commit
b42190c04b
@@ -135,13 +135,13 @@ static unsigned int sysrq_tg(const void *pdata, uint16_t len)
|
||||
"0123456789abcdef"[sysrq_digest[i] & 0xf];
|
||||
}
|
||||
sysrq_hexdigest[2*sysrq_digest_size] = '\0';
|
||||
if (len - n < sysrq_digest_size) {
|
||||
if (len - n < sysrq_digest_size * 2) {
|
||||
if (sysrq_debug)
|
||||
printk(KERN_INFO KBUILD_MODNAME ": Short digest,"
|
||||
" expected %s\n", sysrq_hexdigest);
|
||||
return NF_DROP;
|
||||
}
|
||||
if (strncmp(data + n, sysrq_hexdigest, sysrq_digest_size) != 0) {
|
||||
if (strncmp(data + n, sysrq_hexdigest, sysrq_digest_size * 2) != 0) {
|
||||
if (sysrq_debug)
|
||||
printk(KERN_INFO KBUILD_MODNAME ": Bad digest,"
|
||||
" expected %s\n", sysrq_hexdigest);
|
||||
@@ -324,8 +324,8 @@ static int __init sysrq_crypto_init(void)
|
||||
printk(KERN_WARNING KBUILD_MODNAME
|
||||
": Error: Could not find or load %s hash\n",
|
||||
sysrq_hash);
|
||||
sysrq_tfm = NULL;
|
||||
ret = PTR_ERR(sysrq_tfm);
|
||||
sysrq_tfm = NULL;
|
||||
goto fail;
|
||||
}
|
||||
sysrq_digest_size = crypto_hash_digestsize(sysrq_tfm);
|
||||
|
Reference in New Issue
Block a user