unexmacosx.c.diff   [plain text]


--- src/unexmacosx.c~	2007-06-21 15:38:23.000000000 -0700
+++ src/unexmacosx.c	2007-06-21 21:43:46.000000000 -0700
@@ -572,6 +572,9 @@ print_load_command_name (int lc)
     case LC_UUID:
       printf("LC_UUID");
       break;
+    case LC_CODE_SIGNATURE:
+      printf("LC_CODE_SIGNATURE");
+      break;
     default:
       printf ("unknown          ");
     }
@@ -1000,8 +1003,10 @@ copy_other (struct load_command *lc)
   print_load_command_name (lc->cmd);
   printf (" command\n");
 
+  if (lc->cmd == LC_CODE_SIGNATURE)
+    lc->cmd = 0x0;		/* Don't propagate signature */
   if (!unexec_write (curr_header_offset, lc, lc->cmdsize))
-    unexec_error ("cannot write symtab command to header");
+    unexec_error ("cannot write load command to header");
 
   curr_header_offset += lc->cmdsize;
 }