␉␉perror("read mach header");␊ |
␉␉exit(1);␊ |
}␊ |
␉␊ |
if (nc < (int)sizeof (mh))␊ |
␉{␊ |
␉␉fprintf(stderr, "read mach header: premature EOF %d\n", nc);␊ |
␉␉exit(1);␊ |
}␊ |
␉␊ |
␉␊ |
if (mh.magic == MH_MAGIC)␉␉swap_ends = false;␊ |
else if (mh.magic == MH_CIGAM)␉swap_ends = true;␊ |
else␊ |
|
#define lcp␉((struct load_command *)cp) ␊ |
#define scp␉((struct segment_command *)cp)␊ |
␉␉␊ |
␉ bool␉isDATA;␊ |
␉ unsigned␉vmsize;␊ |
␉ unsigned␉vmaddr;␊ |
␉␉␊ |
␉␉switch(swap(lcp->cmd))␊ |
␉␉{␊ |
␉␉␉case LC_SEGMENT:␊ |
␉␉␉␉isDATA = (strcmp(scp->segname, "__DATA") == 0);␊ |
␉␉␉␉if (isDATA)␊ |
␉␉␉␉{␊ |
␉␉␉␉␉vmaddr = swap(scp->vmaddr);␊ |
␉␉␉␉␉vmsize = swap(scp->filesize);␊ |
␉␉␉␉}␊ |
␉␉␉␉else␊ |
␉␉␉␉{␊ |
␉␉␉␉␉vmaddr = swap(scp->vmaddr);␊ |
␉␉␉␉␉vmsize = swap(scp->vmsize);␊ |
␉␉␉␉}␊ |
␊ |
␉␉␉␉if(vmstart > swap(scp->vmaddr)) ␊ |
␉␉␉␉{␊ |
␉␉␉␉␉vmstart = swap(scp->vmaddr);␊ |
|
␊ |
␉ bool␉isDATA;␊ |
␉ unsigned␉vmsize;␊ |
␉ unsigned␉vmaddr;␊ |
␉␉␊ |
␉␉switch(swap(lcp->cmd))␊ |
␉␉{␊ |
|
␉␉␉␉isDATA = (strcmp(scp->segname, "__DATA") == 0);␊ |
␉␉␉␉if (isDATA)␊ |
␉␉␉␉{␊ |
␉␉␉␉␉vmaddr = swap(scp->vmaddr);␊ |
␉␉␉␉␉vmsize = swap(scp->filesize);␊ |
␉␉␉␉}␊ |
␉␉␉␉else␊ |
␉␉␉␉{␊ |
␉␉␉␉␉vmaddr = swap(scp->vmaddr);␊ |
␉␉␉␉␉vmsize = swap(scp->vmsize);␊ |
␉␉␉␉}␊ |
␉␉␉␉␊ |