mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-12 20:18:20 +00:00
Merge pull request #4916 from YosysHQ/krys/fix_fst_warning
libs/fst: Fix stringop_overread warning under GCC
This commit is contained in:
commit
0354bd7a90
10
libs/fst/00_PATCH_wx_len_overread.patch
Normal file
10
libs/fst/00_PATCH_wx_len_overread.patch
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
--- fstapi.cc
|
||||||
|
+++ fstapi.cc
|
||||||
|
@@ -6072,6 +6072,7 @@ for(;;)
|
||||||
|
}
|
||||||
|
|
||||||
|
wx_len = snprintf(wx_buf, 32, "r%.16g", d);
|
||||||
|
+ if (wx_len > 32 || wx_len < 0) wx_len = 32;
|
||||||
|
fstWritex(xc, wx_buf, wx_len);
|
||||||
|
}
|
||||||
|
}
|
|
@ -18,3 +18,4 @@ sed -i -e 's,"fastlz.c","fastlz.cc",' *.cc *.h
|
||||||
patch -p0 < 00_PATCH_win_zlib.patch
|
patch -p0 < 00_PATCH_win_zlib.patch
|
||||||
patch -p0 < 00_PATCH_win_io.patch
|
patch -p0 < 00_PATCH_win_io.patch
|
||||||
patch -p1 < 00_PATCH_strict_alignment.patch
|
patch -p1 < 00_PATCH_strict_alignment.patch
|
||||||
|
patch -p0 < 00_PATCH_wx_len_overread.patch
|
||||||
|
|
|
@ -3907,16 +3907,18 @@ while (value)
|
||||||
static int fstVcdIDForFwrite(char *buf, unsigned int value)
|
static int fstVcdIDForFwrite(char *buf, unsigned int value)
|
||||||
{
|
{
|
||||||
char *pnt = buf;
|
char *pnt = buf;
|
||||||
|
int len = 0;
|
||||||
|
|
||||||
/* zero is illegal for a value...it is assumed they start at one */
|
/* zero is illegal for a value...it is assumed they start at one */
|
||||||
while (value)
|
while (value && len < 14)
|
||||||
{
|
{
|
||||||
value--;
|
value--;
|
||||||
|
++len;
|
||||||
*(pnt++) = (char)('!' + value % 94);
|
*(pnt++) = (char)('!' + value % 94);
|
||||||
value = value / 94;
|
value = value / 94;
|
||||||
}
|
}
|
||||||
|
|
||||||
return(pnt - buf);
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -6070,6 +6072,7 @@ for(;;)
|
||||||
}
|
}
|
||||||
|
|
||||||
wx_len = snprintf(wx_buf, 32, "r%.16g", d);
|
wx_len = snprintf(wx_buf, 32, "r%.16g", d);
|
||||||
|
if (wx_len > 32 || wx_len < 0) wx_len = 32;
|
||||||
fstWritex(xc, wx_buf, wx_len);
|
fstWritex(xc, wx_buf, wx_len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue