[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