Lines Matching refs:cn
69 static int expand_corename(struct core_name *cn, int size)
74 corename = krealloc(cn->corename, size, GFP_KERNEL);
82 cn->size = size;
83 cn->corename = corename;
87 static __printf(2, 0) int cn_vprintf(struct core_name *cn, const char *fmt,
94 free = cn->size - cn->used;
97 need = vsnprintf(cn->corename + cn->used, free, fmt, arg_copy);
101 cn->used += need;
105 if (!expand_corename(cn, cn->size + need - free + 1))
111 static __printf(2, 3) int cn_printf(struct core_name *cn, const char *fmt, ...)
117 ret = cn_vprintf(cn, fmt, arg);
124 int cn_esc_printf(struct core_name *cn, const char *fmt, ...)
126 int cur = cn->used;
131 ret = cn_vprintf(cn, fmt, arg);
139 if ((cn->used - cur == 1 && cn->corename[cur] == '.') ||
140 (cn->used - cur == 2 && cn->corename[cur] == '.'
141 && cn->corename[cur+1] == '.'))
142 cn->corename[cur] = '!';
150 if (cn->used == cur)
151 ret = cn_printf(cn, "!");
154 for (; cur < cn->used; ++cur) {
155 if (cn->corename[cur] == '/')
156 cn->corename[cur] = '!';
161 static int cn_print_exe_file(struct core_name *cn, bool name_only)
169 return cn_esc_printf(cn, "%s (path unknown)", current->comm);
188 ret = cn_esc_printf(cn, "%s", path);
201 static int format_corename(struct core_name *cn, struct coredump_params *cprm,
211 cn->used = 0;
212 cn->corename = NULL;
213 if (expand_corename(cn, core_name_size))
215 cn->corename[0] = '\0';
237 if (cn->used != 0)
243 err = cn_printf(cn, "%c", '\0');
246 (*argv)[(*argc)++] = cn->used;
250 err = cn_printf(cn, "%c", *pat_ptr++);
258 err = cn_printf(cn, "%c", '%');
263 err = cn_printf(cn, "%d",
268 err = cn_printf(cn, "%d",
272 err = cn_printf(cn, "%d",
276 err = cn_printf(cn, "%d",
281 err = cn_printf(cn, "%u",
287 err = cn_printf(cn, "%u",
292 err = cn_printf(cn, "%d",
297 err = cn_printf(cn, "%d",
305 err = cn_printf(cn, "%lld", time);
311 err = cn_esc_printf(cn, "%s",
317 err = cn_esc_printf(cn, "%s", current->comm);
321 err = cn_print_exe_file(cn, true);
324 err = cn_print_exe_file(cn, false);
328 err = cn_printf(cn, "%lu",
333 err = cn_printf(cn, "%d", cprm->cpu);
352 err = cn_printf(cn, ".%d", task_tgid_vnr(current));
522 struct core_name cn;
577 ispipe = format_corename(&cn, &cprm, &argv, &argc);
631 helper_argv[argi] = cn.corename + argv[argi];
645 cn.corename);
657 if (need_suid_safe && cn.corename[0] != '/') {
675 do_unlinkat(AT_FDCWD, getname_kernel(cn.corename));
701 cprm.file = file_open_root(&root, cn.corename,
705 cprm.file = filp_open(cn.corename, open_flags, 0600);
731 cn.corename);
736 cn.corename);
757 pr_info("Core dump to |%s disabled\n", cn.corename);
788 kfree(cn.corename);