]> git.eshelyaron.com Git - emacs.git/commitdiff
(make_hdr): Handle case of no "additional header".
authorRichard M. Stallman <rms@gnu.org>
Thu, 16 Jun 1994 23:45:41 +0000 (23:45 +0000)
committerRichard M. Stallman <rms@gnu.org>
Thu, 16 Jun 1994 23:45:41 +0000 (23:45 +0000)
src/unexec.c

index d91644519f1bb2c97adaf83562b32d578c959604..2de8b20b5884e805338584525eff25851fb2cd52 100644 (file)
@@ -490,6 +490,7 @@ make_hdr (new, a_out, data_start, bss_start, entry_address, a_name, new_name)
          block_copy_start += sizeof (f_ohdr);
        }
       /* Loop through section headers, copying them in */
+      lseek (a_out, sizeof (f_hdr) + f_hdr.f_opthdr, 0);
       for (scns = f_hdr.f_nscns; scns > 0; scns--) {
        if (read (a_out, &scntemp, sizeof (scntemp)) != sizeof (scntemp))
          {
@@ -657,7 +658,9 @@ make_hdr (new, a_out, data_start, bss_start, entry_address, a_name, new_name)
    * will not adjust the file pointer for that section correctly.
    */
 
-  lseek (a_out, sizeof (f_hdr) + sizeof (f_ohdr), 0);
+  /* This used to use sizeof (f_ohdr) instead of .f_opthdr.
+     .f_opthdr is said to be right when there is no optional header.  */
+  lseek (a_out, sizeof (f_hdr) + f_hdr.f_opthdr, 0);
 
   for (scns = f_hdr.f_nscns; scns > 0; scns--)
     {