projects
/
firefly-linux-kernel-4.4.55.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
251a2a9
)
integrity: ima scatterlist bug fix
author
Mimi Zohar
<zohar@linux.vnet.ibm.com>
Fri, 20 Feb 2009 02:23:50 +0000
(21:23 -0500)
committer
James Morris
<jmorris@namei.org>
Fri, 20 Feb 2009 13:29:59 +0000
(
00:29
+1100)
Based on Alexander Beregalov's post http://lkml.org/lkml/2009/2/19/198
- replaced sg_set_buf() with sg_init_one()
kernel BUG at include/linux/scatterlist.h:65!
invalid opcode: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
last sysfs file:
CPU 2
Modules linked in:
Pid: 1, comm: swapper Not tainted 2.6.29-rc5-next-
20090219
#5 PowerEdge 1950
RIP: 0010:[<
ffffffff8045ec70
>] [<
ffffffff8045ec70
>] ima_calc_hash+0xc0/0x160
RSP: 0018:
ffff88007f46bc40
EFLAGS:
00010286
RAX:
ffffe200032c45e8
RBX:
00000000fffffff4
RCX:
0000000087654321
RDX:
0000000000000002
RSI:
0000000000000001
RDI:
ffff88007cf71048
RBP:
ffff88007f46bcd0
R08:
0000000000000000
R09:
0000000000000163
R10:
ffff88007f4707a8
R11:
0000000000000000
R12:
ffff88007cf71048
R13:
0000000000001000
R14:
0000000000000000
R15:
0000000000009d98
FS:
0000000000000000
(0000) GS:
ffff8800051ac000
(0000) knlGS:
0000000000000000
CS: 0010 DS: 0018 ES: 0018 CR0:
000000008005003b
CR2:
0000000000000000
CR3:
0000000000201000
CR4:
00000000000006e0
DR0:
0000000000000000
DR1:
0000000000000000
DR2:
0000000000000000
DR3:
0000000000000000
DR6:
00000000ffff0ff0
DR7:
0000000000000400
Signed-off-by: Mimi Zohar <zohar@us.ibm.com>
Tested-by: Alexander Beregalov <a.beregalov@gmail.com>
Signed-off-by: James Morris <jmorris@namei.org>
security/integrity/ima/ima_crypto.c
patch
|
blob
|
history
diff --git
a/security/integrity/ima/ima_crypto.c
b/security/integrity/ima/ima_crypto.c
index c2a46e40999d3b2a9ed24c1285ce60c925d90cc9..50d572b74caff78b157f9c713e6148d299b3c387 100644
(file)
--- a/
security/integrity/ima/ima_crypto.c
+++ b/
security/integrity/ima/ima_crypto.c
@@
-68,7
+68,7
@@
int ima_calc_hash(struct file *file, char *digest)
break;
}
offset += rbuf_len;
- sg_
set_buf
(sg, rbuf, rbuf_len);
+ sg_
init_one
(sg, rbuf, rbuf_len);
rc = crypto_hash_update(&desc, sg, rbuf_len);
if (rc)
@@
-95,7
+95,7
@@
int ima_calc_template_hash(int template_len, void *template, char *digest)
if (rc != 0)
return rc;
- sg_
set_buf
(sg, template, template_len);
+ sg_
init_one
(sg, template, template_len);
rc = crypto_hash_update(&desc, sg, template_len);
if (!rc)
rc = crypto_hash_final(&desc, digest);