re PR ada/79309 (incorrectly bounded calls to strncat in adaint.c)

PR ada/79309
	* adaint.c (__gnat_killprocesstree): Fix broken string handling.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r245103
This commit is contained in:
Eric Botcazou 2017-02-01 20:36:23 +00:00 committed by Eric Botcazou
parent cd8ae5edfe
commit 372db67b4d
2 changed files with 12 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2017-02-01 Eric Botcazou <ebotcazou@adacore.com>
Jakub Jelinek <jakub@redhat.com>
PR ada/79309
* adaint.c (__gnat_killprocesstree): Fix broken string handling.
2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
PR lto/79061

View File

@ -3396,14 +3396,16 @@ void __gnat_killprocesstree (int pid, int sig_num)
{
if ((d->d_type & DT_DIR) == DT_DIR)
{
char statfile[64] = { 0 };
char statfile[64];
int _pid, _ppid;
/* read /proc/<PID>/stat */
strncpy (statfile, "/proc/", sizeof(statfile));
strncat (statfile, d->d_name, sizeof(statfile));
strncat (statfile, "/stat", sizeof(statfile));
if (strlen (d->d_name) >= sizeof (statfile) - sizeof ("/proc//stat"))
continue;
strcpy (statfile, "/proc/");
strcat (statfile, d->d_name);
strcat (statfile, "/stat");
FILE *fd = fopen (statfile, "r");