build: fix TagName overflow issues
authorRoss Zwisler <ross.zwisler@linux.intel.com>
Thu, 7 Dec 2017 21:35:02 +0000 (14:35 -0700)
committerEryu Guan <eguan@redhat.com>
Sun, 10 Dec 2017 09:46:05 +0000 (17:46 +0800)
commitce00907d09db3147423485e60db217a3335dfbd8
tree7a6f674a2ee0c902f8996a907a14a0fd771b4911
parent8b71ca416246277481aee2dd74684797dd01101f
build: fix TagName overflow issues

The 'TagName' string is defined to be 40 characters in length, but
in three places we write into it with a format of "(%.39s)".  This
can result in a string of up to 42 characters, the 39 character user
string plus "()\0".  This overflows TagName, as we see in the new
complier warnings from gcc 7.2.1:

iogen.c:1277:6: note: 'sprintf' output between 3 and 42 bytes into a
destination of size 40
  sprintf( TagName, "(%.39s)", optarg );
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fix this by limiting the user string to 37 characters.

Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
ltp/doio.c
ltp/growfiles.c
ltp/iogen.c