检查应用程序中的内部数据结构有无漏洞。在结构中的字段之间使用额外填充,以满足对齐要求。对于 LP64 数据类型模型,当 long 或指针字段增至 64 位时,会分配此额外填充。在 SPARC 平台上的 64 位编译环境中,所有类型的结构均与结构中最长成员的长度对齐。当您重组结构时,请遵循将 long 和指针字段移到结构开头的简单规则。考虑以下结构定义:
struct bar { int i; long j; int k; char *p; }; /* sizeof (struct bar) = 32 */
以下示例显示在结构开头定义了 long 和指针数据类型的相同结构:
struct bar { char *p; long j; int i; int k; }; /* sizeof (struct bar) = 24 */