lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 27 Oct 2009 16:18:52 -0400
From:	Steven Rostedt <rostedt@...dmis.org>
To:	Li Hong <lihong.hi@...il.com>
Cc:	linux-kernel@...r.kernel.org
Subject: Re: [PATCH 5/9] tracing: recordmcount.pl Clarify the logic on
 mcount section check

On Tue, 2009-10-27 at 15:01 +0800, Li Hong wrote:
> >From eb8a2d53bc2484be223e4fa0df8804389e969b72 Mon Sep 17 00:00:00 2001
> From: Li Hong <lihong.hi@...il.com>
> Date: Tue, 27 Oct 2009 12:53:52 +0800
> Subject: [PATCH] tracing: recordmcount.pl Clarify the logic on mcount section check
> 
> Move the mcount section check to the beginning of the objdump read loop.
> It is clearer, because mcount section check uses headers dump part of objdump
> to identify a mcount section, which goes before the section parts.
> 
> Signed-off-by: Li Hong <lihong.hi@...il.com>
> 
> diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl
> index 970c6d6..a6585b6 100755
> --- a/scripts/recordmcount.pl
> +++ b/scripts/recordmcount.pl
> @@ -384,9 +384,26 @@ open(IN, "$objdump -hdr $inputfile|") || die "error running $objdump";
>  
>  my $text;
>  
> -my $read_headers = 1;
>  
>  while (<IN>) {
> +    # read headers first
> +    my $read_headers = 1;
> +    

Please keep the $read_headers initialization outside of the while loop.
It makes it easier for C programers to understand. Otherwise it looks
like it gets reset every time.

-- Steve

> +    if ($read_headers && /$mcount_section/) {
> +	#
> +	# Somehow the make process can execute this script on an
> +	# object twice. If it does, we would duplicate the mcount
> +	# section and it will cause the function tracer self test
> +	# to fail. Check if the mcount section exists, and if it does,
> +	# warn and exit.
> +	#
> +	print STDERR "ERROR: $mcount_section already in $inputfile\n" .
> +	    "\tThis may be an indication that your build is corrupted.\n" .
> +	    "\tDelete $inputfile and try again. If the same object file\n" .
> +	    "\tstill causes an issue, then disable CONFIG_DYNAMIC_FTRACE.\n";
> +	exit(-1);
> +    }
> +
>      # is it a section?
>      if (/$section_regex/) {
>  	$read_headers = 0;
> @@ -427,21 +444,7 @@ while (<IN>) {
>  		$offset = hex $1;
>  	    }
>  	}
> -    } elsif ($read_headers && /$mcount_section/) {
> -	#
> -	# Somehow the make process can execute this script on an
> -	# object twice. If it does, we would duplicate the mcount
> -	# section and it will cause the function tracer self test
> -	# to fail. Check if the mcount section exists, and if it does,
> -	# warn and exit.
> -	#
> -	print STDERR "ERROR: $mcount_section already in $inputfile\n" .
> -	    "\tThis may be an indication that your build is corrupted.\n" .
> -	    "\tDelete $inputfile and try again. If the same object file\n" .
> -	    "\tstill causes an issue, then disable CONFIG_DYNAMIC_FTRACE.\n";
> -	exit(-1);
> -    }
> -
> +    } 
>      # is this a call site to mcount? If so, record it to print later
>      if ($text_found && /$mcount_regex/) {
>  	$offsets[$#offsets + 1] = hex $1;

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ