[PATCH 3/3] makedumpfile/xen: Fail immediately if dump level is invalid
Atsushi Kumagai
kumagai-atsushi at mxc.nes.nec.co.jp
Wed Nov 27 21:12:23 EST 2013
Hello Daniel,
On 2013/11/27 5:19:56, Daniel Kiper <daniel.kiper at oracle.com> wrote:
> Do not try to process Xen crash dump if dump level is invalid.
> Fail immediately and print relevant error message.
>
> Signed-off-by: Daniel Kiper <daniel.kiper at oracle.com>
> ---
> makedumpfile.c | 18 +++++++++++++++++-
> 1 file changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/makedumpfile.c b/makedumpfile.c
> index b160cea..389efc5 100644
> --- a/makedumpfile.c
> +++ b/makedumpfile.c
> @@ -64,6 +64,8 @@ do { \
> static void check_cyclic_buffer_overrun(void);
> static void setup_page_is_buddy(void);
>
> +int get_next_dump_level(int index);
> +
> void
> initialize_tables(void)
> {
> @@ -2903,7 +2905,7 @@ initial(void)
> {
> off_t offset;
> unsigned long size;
> - int debug_info = FALSE;
> + int debug_info = FALSE, dump_level, i;
>
> #ifdef USELZO
> if (lzo_init() == LZO_E_OK)
> @@ -2926,6 +2928,20 @@ initial(void)
> #endif
>
> if (is_xen_memory()) {
> + for (i = 0; ; ++i) {
> + dump_level = get_next_dump_level(i);
> +
> + if (dump_level < 0)
> + break;
> +
> + if (dump_level <= 1)
> + continue;
> +
> + MSG("Allowed Dump_Level for Xen dump filtering is 0 or 1\n");
> +
> + return FALSE;
> + }
> +
This check is already exist in initial_xen():
#ifndef __x86_64__
if (DL_EXCLUDE_ZERO < info->max_dump_level) {
MSG("Dump_level is invalid. It should be 0 or 1.\n");
MSG("Commandline parameter is invalid.\n");
MSG("Try `makedumpfile --help' for more information.\n");
return FALSE;
}
#endif
So if you want to check the dump level early, you should extract the code
above from initial_xen() and insert it into here instead.
Thanks
Atsushi Kumagai
> if(info->flag_cyclic) {
> info->flag_cyclic = FALSE;
> MSG("Switched running mode from cyclic to non-cyclic,\n");
> --
> 1.7.10.4
>
>
More information about the kexec
mailing list