• C
    perf jit: memset() variable 'st' using the correct size · f56ebf20
    Colin Ian King 提交于
    The current code is memsetting the 'struct stat' variable 'st' with the size of
    'stat' (which turns out to be 1 byte) rather than the size of variable 'sz'.
    
    Committer notes:
    
    sizeof(function) isn't valid, the result depends on the compiler used, with
    gcc, enabling pedantic warnings we get:
    
      $ cat sizeof_function.c
      #include <sys/types.h>
      #include <sys/stat.h>
      #include <unistd.h>
      #include <stdio.h>
    
      int main(void)
      {
    	  printf("sizeof(stat)=%zd, stat=%p\n", sizeof(stat), stat);
    	  return 0;
      }
      $ readelf -sW sizeof_function | grep -w stat
          49: 0000000000400630    16 FUNC    WEAK   HIDDEN    13 stat
      $ cc -pedantic sizeof_function.c   -o sizeof_function
      sizeof_function.c: In function ‘main’:
      sizeof_function.c:8:46: warning: invalid application of ‘sizeof’ to a function type [-Wpointer-arith]
        printf("sizeof(stat)=%zd, stat=%p\n", sizeof(stat), stat);
                                                  ^
      $ ./sizeof_function
      sizeof(stat)=1, stat=0x400630
      $
    
      Standard C, section 6.5.3.4:
    
      "The sizeof operator shall not be applied to an expression that has function
       type or an incomplete type, to the parenthesized name of such a type,
       or to an expression that designates a bit-field member."
    
      http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdfSigned-off-by: NColin Ian King <colin.king@canonical.com>
    Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Fixes: 9b07e27f ("perf inject: Add jitdump mmap injection support")
    Link: http://lkml.kernel.org/r/1461020838-9260-1-git-send-email-colin.king@canonical.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
    f56ebf20
jitdump.c 15.5 KB