FileHeader structure is read directly from a binary file. Right now this is vulnerable as the structure members are int which size needs not to be 32bits.
Likewise for the structure alignement and padding. Compiler may choose to align members and pad the structure as it wishes unless spefiied otherwise.
See struct-padding-in-c.