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