Changeset 82809
- Timestamp:
- 08/20/11 16:43:32 (4 years ago)
- Location:
- branches/gsoc11-post-destroot/base/src/pextlib1.0
- Files:
-
- 2 edited
-
macho.c (modified) (5 diffs)
-
tests/macho.tcl (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/gsoc11-post-destroot/base/src/pextlib1.0/macho.c
r82773 r82809 86 86 87 87 Tcl_Obj * check_magic(const uint32_t magic, macho_input_t **input, bool * universal, uint32_t (**swap32)(uint32_t), const struct mach_header ** header, const struct fat_header ** fat_header, size_t * header_size){ 88 const struct mach_header_64 *header64; 88 89 switch (magic) { 89 90 case MH_CIGAM: 90 case MH_CIGAM_64:91 91 *swap32 = macho_swap32; 92 92 /* Fall-through */ 93 93 94 94 case MH_MAGIC: 95 case MH_MAGIC_64:96 95 *header_size = sizeof(**header); 97 96 *header = macho_read(*input, (*input)->data, *header_size); … … 101 100 break; 102 101 102 case MH_CIGAM_64: 103 *swap32 = macho_swap32; 104 /* Fall-through */ 105 106 case MH_MAGIC_64: 107 *header_size = sizeof(*header64); 108 header64 = macho_read(*input, (*input)->data, sizeof(*header64)); 109 if (header64 == NULL) 110 return (Tcl_Obj *)TCL_ERROR; 111 112 /* The 64-bit header is a direct superset of the 32-bit header */ 113 *header = (struct mach_header *) header64; 114 break; 115 103 116 case FAT_CIGAM: 104 117 case FAT_MAGIC: … … 137 150 return (Tcl_Obj *)TCL_ERROR; 138 151 139 140 152 /* Check file header magic */ 141 153 if(check_magic(*magic, &input, &universal, &swap32, &header, &fat_header, &header_size) == (Tcl_Obj *)TCL_ERROR){ … … 153 165 /* Parse the Mach-O load commands */ 154 166 cmd = macho_offset(input, header, header_size, sizeof(struct load_command)); 155 if (cmd == NULL) 156 return (Tcl_Obj *)TCL_ERROR; 167 if (cmd == NULL){ 168 return (Tcl_Obj *)TCL_ERROR; 169 } 157 170 ncmds = swap32(header->ncmds); 158 171 … … 239 252 Tcl_Obj * list_macho_archs_l(macho_input_t *input, Tcl_Interp *interp, Tcl_Obj * archs_list) { 240 253 const struct mach_header *header; 241 const struct mach_header_64 *header64;242 254 size_t header_size; 243 255 const NXArchInfo *archInfo; -
branches/gsoc11-post-destroot/base/src/pextlib1.0/tests/macho.tcl
r82430 r82809 3 3 4 4 set test_file /bin/sh 5 #set test_file /opt/local/lib/libevent_pthreads-2.0.5.dylib 5 6 set archs [list_archs $test_file] 6 7 set libs [list_dlibs $test_file]
Note: See TracChangeset
for help on using the changeset viewer.

