@@ -586,8 +586,7 @@ void do_coredump(const kernel_siginfo_t *siginfo)
586
586
struct subprocess_info * sub_info ;
587
587
588
588
if (ispipe < 0 ) {
589
- printk (KERN_WARNING "format_corename failed\n" );
590
- printk (KERN_WARNING "Aborting core\n" );
589
+ coredump_report_failure ("format_corename failed, aborting core" );
591
590
goto fail_unlock ;
592
591
}
593
592
@@ -607,27 +606,21 @@ void do_coredump(const kernel_siginfo_t *siginfo)
607
606
* right pid if a thread in a multi-threaded
608
607
* core_pattern process dies.
609
608
*/
610
- printk (KERN_WARNING
611
- "Process %d(%s) has RLIMIT_CORE set to 1\n" ,
612
- task_tgid_vnr (current ), current -> comm );
613
- printk (KERN_WARNING "Aborting core\n" );
609
+ coredump_report_failure ("RLIMIT_CORE is set to 1, aborting core" );
614
610
goto fail_unlock ;
615
611
}
616
612
cprm .limit = RLIM_INFINITY ;
617
613
618
614
dump_count = atomic_inc_return (& core_dump_count );
619
615
if (core_pipe_limit && (core_pipe_limit < dump_count )) {
620
- printk (KERN_WARNING "Pid %d(%s) over core_pipe_limit\n" ,
621
- task_tgid_vnr (current ), current -> comm );
622
- printk (KERN_WARNING "Skipping core dump\n" );
616
+ coredump_report_failure ("over core_pipe_limit, skipping core dump" );
623
617
goto fail_dropcount ;
624
618
}
625
619
626
620
helper_argv = kmalloc_array (argc + 1 , sizeof (* helper_argv ),
627
621
GFP_KERNEL );
628
622
if (!helper_argv ) {
629
- printk (KERN_WARNING "%s failed to allocate memory\n" ,
630
- __func__ );
623
+ coredump_report_failure ("%s failed to allocate memory" , __func__ );
631
624
goto fail_dropcount ;
632
625
}
633
626
for (argi = 0 ; argi < argc ; argi ++ )
@@ -644,8 +637,7 @@ void do_coredump(const kernel_siginfo_t *siginfo)
644
637
645
638
kfree (helper_argv );
646
639
if (retval ) {
647
- printk (KERN_INFO "Core dump to |%s pipe failed\n" ,
648
- cn .corename );
640
+ coredump_report_failure ("|%s pipe failed" , cn .corename );
649
641
goto close_fail ;
650
642
}
651
643
} else {
@@ -658,10 +650,8 @@ void do_coredump(const kernel_siginfo_t *siginfo)
658
650
goto fail_unlock ;
659
651
660
652
if (need_suid_safe && cn .corename [0 ] != '/' ) {
661
- printk (KERN_WARNING "Pid %d(%s) can only dump core " \
662
- "to fully qualified path!\n" ,
663
- task_tgid_vnr (current ), current -> comm );
664
- printk (KERN_WARNING "Skipping core dump\n" );
653
+ coredump_report_failure (
654
+ "this process can only dump core to a fully qualified path, skipping core dump" );
665
655
goto fail_unlock ;
666
656
}
667
657
@@ -730,13 +720,13 @@ void do_coredump(const kernel_siginfo_t *siginfo)
730
720
idmap = file_mnt_idmap (cprm .file );
731
721
if (!vfsuid_eq_kuid (i_uid_into_vfsuid (idmap , inode ),
732
722
current_fsuid ())) {
733
- pr_info_ratelimited ("Core dump to %s aborted: cannot preserve file owner\n" ,
734
- cn .corename );
723
+ coredump_report_failure ("Core dump to %s aborted: "
724
+ "cannot preserve file owner" , cn .corename );
735
725
goto close_fail ;
736
726
}
737
727
if ((inode -> i_mode & 0677 ) != 0600 ) {
738
- pr_info_ratelimited ("Core dump to %s aborted: cannot preserve file permissions\n" ,
739
- cn .corename );
728
+ coredump_report_failure ("Core dump to %s aborted: "
729
+ "cannot preserve file permissions" , cn .corename );
740
730
goto close_fail ;
741
731
}
742
732
if (!(cprm .file -> f_mode & FMODE_CAN_WRITE ))
@@ -757,7 +747,7 @@ void do_coredump(const kernel_siginfo_t *siginfo)
757
747
* have this set to NULL.
758
748
*/
759
749
if (!cprm .file ) {
760
- pr_info ("Core dump to |%s disabled\n " , cn .corename );
750
+ coredump_report_failure ("Core dump to |%s disabled" , cn .corename );
761
751
goto close_fail ;
762
752
}
763
753
if (!dump_vma_snapshot (& cprm ))
@@ -983,11 +973,10 @@ void validate_coredump_safety(void)
983
973
{
984
974
if (suid_dumpable == SUID_DUMP_ROOT &&
985
975
core_pattern [0 ] != '/' && core_pattern [0 ] != '|' ) {
986
- pr_warn (
987
- "Unsafe core_pattern used with fs.suid_dumpable=2.\n"
988
- "Pipe handler or fully qualified core dump path required.\n"
989
- "Set kernel.core_pattern before fs.suid_dumpable.\n"
990
- );
976
+
977
+ coredump_report_failure ("Unsafe core_pattern used with fs.suid_dumpable=2: "
978
+ "pipe handler or fully qualified core dump path required. "
979
+ "Set kernel.core_pattern before fs.suid_dumpable." );
991
980
}
992
981
}
993
982
0 commit comments