Hi All,

 

I am seeing kernel panic in
selinux code sometime during boot up and on random scenarios. Has anyone
encountered similar issue. Any help in this is highly appreciated. 

 

Case 1:

Device crashes during boot
time. The crash happened at task_has_perm() as the real_cred->security was
0x7(freed) . so I think this is a race condition between calling task_has_perm
and switching credential data of the task.

 

Case 2: 

kernel panic at
security_cred_free->kfree

 

 

Code snippet 

static void selinux_cred_free(struct cred
*cred)

{

    struct task_security_struct
*tsec = cred->security;

    /*

    * cred->security == NULL if
security_cred_alloc_blank() or

    * security_prepare_creds()
returned an error.

    */

    BUG_ON(cred->security
&& (unsigned long) cred->security < PAGE_SIZE);

    cred->security = (void *)
0x7UL;

    kfree(tsec);

}

 

 

Case 1 logs:

 

    16.406699:
  <6> chmod (1290): undefined instruction: pc=b6e675a8

    16.406741:
  <6> Code: ea000002 00000000 f26ee1fe e12fff1e (ee190f1d) 

    16.865789:
  <6> binder: 307:307 BC_REQUEST_DEATH_NOTIFICATION death
notification already set

    16.911807:
  <6> usb_notifier: usb: usbgadget_ready,gadget_state:2

    16.913535:
  <6> RKP RO CRED ALLOC -> order 0, c1542000

    17.001396:
  <6> Unable to handle kernel NULL pointer dereference at virtual
address 0000000b

    17.001444:
  <6> pgd = c0004000

    17.001469:
  <2> [0000000b] *pgd=00000000

    17.001538:
  <6> Internal error: Oops: 5 [#1] PREEMPT SMP ARM

    17.001575:
  <2> Modules linked in: mhi(O)

    17.001611:
  <6> CPU: 1 PID: 1320 Comm: kworker/u8:5 Tainted: G    
   W  O 3.10.40-3767095 #1

    17.001650:
  <6> task: f5661a40 ti: f3aa0000 task.ti: f3aa0000

    17.001684:
  <2> PC is at task_has_perm+0x1c/0x58

    17.001711:
  <2> LR is at task_has_perm+0x14/0x58

    17.001744:
  <2> pc : [<c0376504>]    lr : [<c03764fc>]
   psr: 600f0013

sp : f3aa1eb8  ip :
c1514480  fp : f3aa0000

    17.001801:
  <2> r10: fffffff6  r9 : f3aa1f68  r8 : f3aa0000

    17.001831:
  <2> r7 : f3e1de80  r6 : f5661a40  r5 : f44fc440  r4
: 00000004

    17.001863:
  <2> r3 : 00000007  r2 : 00000001  r1 : f5661a40  r0
: f44fc440

    17.001897:
  <2> Flags: nZCv  IRQs on  FIQs on  Mode SVC_32
 ISA ARM  Segment kernel

    17.001932:
  <2> Control: 10c5787d  Table: 3456406a  DAC: 00000015

    17.001965:
  <2> 

PC: 0xc0376484:

....

....

 

    17.008257:
  <2> [<c0376504>] (task_has_perm+0x1c/0x58) from
[<c0374770>] (security_task_wait+0x14/0x1c)

    17.008313:
  <2> [<c0374770>] (security_task_wait+0x14/0x1c) from
[<c0179364>] (wait_consider_task+0x74/0xaa0)

    17.008367:
  <2> [<c0179364>] (wait_consider_task+0x74/0xaa0) from
[<c0179ee8>] (do_wait+0x158/0x268)

    17.008422:
  <2> [<c0179ee8>] (do_wait+0x158/0x268) from
[<c017a3e8>] (SyS_wait4+0xa0/0xc0)

    17.008469:
  <2> [<c017a3e8>] (SyS_wait4+0xa0/0xc0) from
[<c018b9f0>] (wait_for_helper+0x7c/0xa0)

    17.008521:
  <2> [<c018b9f0>] (wait_for_helper+0x7c/0xa0) from
[<c0105fd8>] (ret_from_fork+0x14/0x3c)

    17.008567:
  <6> Code: e1a04002 ebf86d6c e5953350 e593305c (e5937004) 

    17.008628:
  <6> ---[ end trace dec6997083161641 ]---

    17.008660:
  <6> Kernel panic - not syncing: Fatal exception

 

Case 2 logs :

 

 

210667.169453:  
<6> Unable to handle kernel paging request at virtual address 1c314076

210667.169468:  
<6> pgd = c0004000

210667.169477:  
<2> [1c314076] *pgd=00000000

210667.169491:  
<6> Internal error: Oops: 5 [#1] PREEMPT SMP ARM

210667.169500:  
<2> Modules linked in: touchx [last unloaded: wlan]

210667.169523:  
<6> CPU: 3 PID: 24 Comm: ksoftirqd/3 Tainted: G      
 W  O 3.10.40-eng-g3951ac3 #1

210667.169532:  
<6> task: e76a0a80 ti: e76aa000 task.ti: e76aa000

210667.169546:  
<2> PC is at kfree+0xdc/0x220

210667.169562:  
<2> LR is at security_cred_free+0x14/0x1c

210667.169571:  
<2> pc : [<c02395f0>]    lr : [<c035e7a4>]  
 psr: 000f0013

sp : e76abe60  ip :
c0191a68  fp : 00000fff

210667.169581:  
<2> r10: 00000001  r9 : 00000008  r8 : c119b440

210667.169589:  
<2> r7 : c124fc40  r6 : e76aa000  r5 : 90520440  r4 :
1c314076

210667.169597:  
<2> r3 : 50f1f241  r2 : c5000000  r1 : 1c314076  r0 :
90520440

210667.169606:  
<2> Flags: nzcv  IRQs on  FIQs on  Mode SVC_32  ISA
ARM  Segment kernel

210667.169615:  
<2> Control: 10c5787d  Table: 2357c06a  DAC: 00000015

210667.169624:  
<2> 

 

....

....

210667.172236:  
<2> [<c02395f0>] (kfree+0xdc/0x220) from [<c035e7a4>]
(security_cred_free+0x14/0x1c)

210667.172255:  
<2> [<c035e7a4>] (security_cred_free+0x14/0x1c) from [<c0191a98>]
(put_cred_rcu+0x30/0xac)

210667.172274:  
<2> [<c0191a98>] (put_cred_rcu+0x30/0xac) from [<c01da6cc>]
(rcu_process_callbacks+0x338/0x590)

210667.172294:  
<2> [<c01da6cc>] (rcu_process_callbacks+0x338/0x590) from
[<c0174598>] (__do_softirq+0x150/0x2b4)

210667.172311:  
<2> [<c0174598>] (__do_softirq+0x150/0x2b4) from [<c0174720>]
(run_ksoftirqd+0x24/0x58)

210667.172327:  
<2> [<c0174720>] (run_ksoftirqd+0x24/0x58) from [<c0193708>]
(smpboot_thread_fn+0x20c/0x224)

210667.172343:  
<2> [<c0193708>] (smpboot_thread_fn+0x20c/0x224) from
[<c018c3b0>] (kthread+0xa0/0xac)

210667.172360:  
<2> [<c018c3b0>] (kthread+0xa0/0xac) from [<c0105f18>]
(ret_from_fork+0x14/0x3c)

210667.172372:  
<6> Code: f57ff05f e7923003 e3130902 11a04001 (e5943000) 

210667.172382:   <6>
---[ end trace e99c3ffdc45a06ec ]---

210667.186836:  
<6> Kernel panic - not syncing: Fatal exception in interrupt

 

Thanks,

Avijit

 

                                                                                
  
_______________________________________________
Seandroid-list mailing list
[email protected]
To unsubscribe, send email to [email protected].
To get help, send an email containing "help" to 
[email protected].

Reply via email to