* i387-nat.c (i387_fill_fxsave): Change type of ``val'' from char
authorKevin Buettner <kevinb@redhat.com>
Thu, 13 Dec 2001 17:34:52 +0000 (17:34 +0000)
committerKevin Buettner <kevinb@redhat.com>
Thu, 13 Dec 2001 17:34:52 +0000 (17:34 +0000)
to short so that we don't memcpy() beyond the end of this buffer.
Also, change shift value used in computing val to account for the
fact that only eight bits are used.

gdb/ChangeLog
gdb/i387-nat.c

index 3e112592dddff8936e0bd33a959a5d3d1c059f87..1ea3b1b990b614d8e2bc0d3270d5b2ac8e5df262 100644 (file)
@@ -1,3 +1,10 @@
+2001-12-13  Kevin Buettner  <kevinb@redhat.com>
+
+       * i387-nat.c (i387_fill_fxsave): Change type of ``val'' from char
+       to short so that we don't memcpy() beyond the end of this buffer.
+       Also, change shift value used in computing val to account for the
+       fact that only eight bits are used.
+
 2001-12-13  Corinna Vinschen  <vinschen@redhat.com>
 
        * Makefile.in: Add support for xstormy16.
index b15184e5d51b52b0b98c3f7701fd86457cfcfb38..f792336d382dba2ed684b2af18508bbbd84e9858 100644 (file)
@@ -270,7 +270,7 @@ i387_fill_fxsave (char *fxsave, int regnum)
              {
                /* Converting back is much easier.  */
 
-               unsigned char val = 0;
+               unsigned short val = 0;
                unsigned short ftag;
                int fpreg;
 
@@ -281,7 +281,7 @@ i387_fill_fxsave (char *fxsave, int regnum)
                    int tag = (ftag >> (fpreg * 2)) & 3;
 
                    if (tag != 3)
-                     val |= (1 << (fpreg * 2));
+                     val |= (1 << fpreg);
                  }
 
                memcpy (FXSAVE_ADDR (fxsave, i), &val, 2);