libdwfl: linux-pid-attach.c (dwfl_linux_proc_attach): Use and check strtol

Signed-off-by: Mark Wielaard <mjw@redhat.com>
diff --git a/libdwfl/linux-pid-attach.c b/libdwfl/linux-pid-attach.c
index 21ff4b9..58d6942 100644
--- a/libdwfl/linux-pid-attach.c
+++ b/libdwfl/linux-pid-attach.c
@@ -306,8 +306,15 @@
   while (getline (&line, &linelen, procfile) >= 0)
     if (strncmp (line, "Tgid:", 5) == 0)
       {
-        pid = atoi (&line[5]);
-        break;
+	errno = 0;
+	char *endptr;
+	long val = strtol (&line[5], &endptr, 10);
+	if ((errno == ERANGE && val == LONG_MAX)
+	    || *endptr != '\n' || val < 0 || val != (pid_t) val)
+	  pid = 0;
+	else
+	  pid = (pid_t) val;
+	break;
       }
   free (line);
   fclose (procfile);