Skip to content
  • Tautschnig, Michael's avatar
    scripts: Fix size mismatch of kexec_purgatory_size · 21532b9e
    Tautschnig, Michael authored
    
    
    bin2c is used to create a valid C file out of a binary file where two
    symbols will be globally defined: <name> and <name>_size. <name> is
    passed as the first parameter of the host binary.
    
    Building using goto-cc reported that the purgatory binary code (the only
    current user of this utility) declares kexec_purgatory_size as 'size_t'
    where bin2c generate <name>_size to be 'int' so in a 64-bit host where
    sizeof(size_t) > sizeof(int) this type mismatch will always yield the
    wrong value for big-endian architectures while for little-endian it will
    be wrong if the object laid in memory directly after
    kexec_purgatory_size contains non-zero value at the time of reading.
    
    This commit changes <name>_size to be size_t instead.
    
    Note:
    
    Another way to fix the problem is to change the type of
    kexec_purgatory_size to be 'int' as there's this check in code:
    (kexec_purgatory_size <= 0)
    
    Signed-off-by: default avatarMichael Tautschnig <tautschn@amazon.com>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Acked-by: default avatarDave Young <dyoung@redhat.com>
    Signed-off-by: default avatarMichal Marek <mmarek@suse.com>
    21532b9e