• Home
  • Raw
  • Download

Lines Matching full:cn

77 static int expand_corename(struct core_name *cn, int size)  in expand_corename()  argument
82 corename = krealloc(cn->corename, size, GFP_KERNEL); in expand_corename()
90 cn->size = size; in expand_corename()
91 cn->corename = corename; in expand_corename()
95 static __printf(2, 0) int cn_vprintf(struct core_name *cn, const char *fmt, in cn_vprintf() argument
102 free = cn->size - cn->used; in cn_vprintf()
105 need = vsnprintf(cn->corename + cn->used, free, fmt, arg_copy); in cn_vprintf()
109 cn->used += need; in cn_vprintf()
113 if (!expand_corename(cn, cn->size + need - free + 1)) in cn_vprintf()
119 static __printf(2, 3) int cn_printf(struct core_name *cn, const char *fmt, ...) in cn_printf() argument
125 ret = cn_vprintf(cn, fmt, arg); in cn_printf()
132 int cn_esc_printf(struct core_name *cn, const char *fmt, ...) in cn_esc_printf() argument
134 int cur = cn->used; in cn_esc_printf()
139 ret = cn_vprintf(cn, fmt, arg); in cn_esc_printf()
147 if ((cn->used - cur == 1 && cn->corename[cur] == '.') || in cn_esc_printf()
148 (cn->used - cur == 2 && cn->corename[cur] == '.' in cn_esc_printf()
149 && cn->corename[cur+1] == '.')) in cn_esc_printf()
150 cn->corename[cur] = '!'; in cn_esc_printf()
158 if (cn->used == cur) in cn_esc_printf()
159 ret = cn_printf(cn, "!"); in cn_esc_printf()
162 for (; cur < cn->used; ++cur) { in cn_esc_printf()
163 if (cn->corename[cur] == '/') in cn_esc_printf()
164 cn->corename[cur] = '!'; in cn_esc_printf()
169 static int cn_print_exe_file(struct core_name *cn, bool name_only) in cn_print_exe_file() argument
177 return cn_esc_printf(cn, "%s (path unknown)", current->comm); in cn_print_exe_file()
196 ret = cn_esc_printf(cn, "%s", path); in cn_print_exe_file()
209 static int format_corename(struct core_name *cn, struct coredump_params *cprm, in format_corename() argument
219 cn->used = 0; in format_corename()
220 cn->corename = NULL; in format_corename()
221 if (expand_corename(cn, core_name_size)) in format_corename()
223 cn->corename[0] = '\0'; in format_corename()
245 if (cn->used != 0) in format_corename()
251 err = cn_printf(cn, "%c", '\0'); in format_corename()
254 (*argv)[(*argc)++] = cn->used; in format_corename()
258 err = cn_printf(cn, "%c", *pat_ptr++); in format_corename()
266 err = cn_printf(cn, "%c", '%'); in format_corename()
271 err = cn_printf(cn, "%d", in format_corename()
276 err = cn_printf(cn, "%d", in format_corename()
280 err = cn_printf(cn, "%d", in format_corename()
284 err = cn_printf(cn, "%d", in format_corename()
289 err = cn_printf(cn, "%u", in format_corename()
295 err = cn_printf(cn, "%u", in format_corename()
300 err = cn_printf(cn, "%d", in format_corename()
305 err = cn_printf(cn, "%d", in format_corename()
313 err = cn_printf(cn, "%lld", time); in format_corename()
319 err = cn_esc_printf(cn, "%s", in format_corename()
325 err = cn_esc_printf(cn, "%s", current->comm); in format_corename()
329 err = cn_print_exe_file(cn, true); in format_corename()
332 err = cn_print_exe_file(cn, false); in format_corename()
336 err = cn_printf(cn, "%lu", in format_corename()
341 err = cn_printf(cn, "%d", cprm->cpu); in format_corename()
361 err = cn_printf(cn, "%d", COREDUMP_PIDFD_NUMBER); in format_corename()
381 err = cn_printf(cn, ".%d", task_tgid_vnr(current)); in format_corename()
591 struct core_name cn; in do_coredump() local
646 ispipe = format_corename(&cn, &cprm, &argv, &argc); in do_coredump()
700 helper_argv[argi] = cn.corename + argv[argi]; in do_coredump()
714 cn.corename); in do_coredump()
726 if (need_suid_safe && cn.corename[0] != '/') { in do_coredump()
744 do_unlinkat(AT_FDCWD, getname_kernel(cn.corename)); in do_coredump()
770 cprm.file = file_open_root(&root, cn.corename, in do_coredump()
774 cprm.file = filp_open(cn.corename, open_flags, 0600); in do_coredump()
800 cn.corename); in do_coredump()
805 cn.corename); in do_coredump()
826 pr_info("Core dump to |%s disabled\n", cn.corename); in do_coredump()
857 kfree(cn.corename); in do_coredump()