File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1067,6 +1067,18 @@ static bool coredump_write(struct core_name *cn,
10671067 return true;
10681068}
10691069
1070+ static void coredump_cleanup (struct core_name * cn , struct coredump_params * cprm )
1071+ {
1072+ if (cprm -> file )
1073+ filp_close (cprm -> file , NULL );
1074+ if (cn -> core_pipe_limit ) {
1075+ VFS_WARN_ON_ONCE (cn -> core_type != COREDUMP_PIPE );
1076+ atomic_dec (& core_pipe_count );
1077+ }
1078+ kfree (cn -> corename );
1079+ coredump_finish (cn -> core_dumped );
1080+ }
1081+
10701082void vfs_coredump (const kernel_siginfo_t * siginfo )
10711083{
10721084 struct core_state core_state ;
@@ -1119,7 +1131,7 @@ void vfs_coredump(const kernel_siginfo_t *siginfo)
11191131
11201132 if (!coredump_parse (& cn , & cprm , & argv , & argc )) {
11211133 coredump_report_failure ("format_corename failed, aborting core" );
1122- goto fail_unlock ;
1134+ goto close_fail ;
11231135 }
11241136
11251137 switch (cn .core_type ) {
@@ -1182,15 +1194,7 @@ void vfs_coredump(const kernel_siginfo_t *siginfo)
11821194 }
11831195
11841196close_fail :
1185- if (cprm .file )
1186- filp_close (cprm .file , NULL );
1187- if (cn .core_pipe_limit ) {
1188- VFS_WARN_ON_ONCE (cn .core_type != COREDUMP_PIPE );
1189- atomic_dec (& core_pipe_count );
1190- }
1191- fail_unlock :
1192- kfree (cn .corename );
1193- coredump_finish (cn .core_dumped );
1197+ coredump_cleanup (& cn , & cprm );
11941198 revert_creds (old_cred );
11951199 return ;
11961200}
You can’t perform that action at this time.
0 commit comments