Reggie Perry pointed out a serious bug in unexalpha.c that got
introduced a few betas ago -- a call to bcopy got converted to memcpy
without the parameters being reversed. The following patch is in b42
(which will be released shortly).
1998-06-01 SL Baur <steve(a)altair.xemacs.org>
* unexalpha.c (unexec): Reverse parameters in call to memcpy.
Suggested by Reggie Perry <perry(a)zso.dec.com>
Index: src/unexalpha.c
===================================================================
RCS file: /usr/local/xemacs/xemacs-20.0/src/unexalpha.c,v
retrieving revision 1.4
diff -u -r1.4 unexalpha.c
--- src/unexalpha.c 1998/05/06 09:46:51 1.4
+++ src/unexalpha.c 1998/06/02 00:43:38
@@ -302,7 +302,7 @@
* Construct new symbol table header
*/
- memcpy (oldptr + nhdr.fhdr.f_symptr, buffer, cbHDRR);
+ memcpy (buffer, oldptr + nhdr.fhdr.f_symptr, cbHDRR);
#define symhdr ((pHDRR)buffer)
newsyms = nhdr.aout.tsize + nhdr.aout.dsize;
@@ -394,7 +394,7 @@
if (!strcmp(s,"_edata"))
{
found++;
- memcpy (x, &n_edata, cbEXTR);
+ memcpy (&n_edata, x, cbEXTR);
n_edata.asym.value = Brk;
SEEK (new, newsyms + cbHDRR + i,
"seeking to symbol _edata in %s", new_name);
@@ -404,7 +404,7 @@
else if (!strcmp(s,"_end"))
{
found++;
- memcpy (x, &n_end, cbEXTR);
+ memcpy (&n_end, x, cbEXTR);
n_end.asym.value = Brk;
SEEK (new, newsyms + cbHDRR + i,
"seeking to symbol _end in %s", new_name);