*x = 0;
int fd = atoi(last);
- if (fd < TRACKFDS_STATIC_COUNT) {
+ if (fd < 0) {
+ goto next;
+
+ } else if (fd < TRACKFDS_STATIC_COUNT) {
tracked_fds[fd] = 1;
} else {
if (!tracked_fds_list) {
assert(fd >= 0);
int length = snprintf(x, 10 + 1, "%d", fd);
- if (length >= 10 + 1) {
+ if (length >= 10 + 1 || length <= 0 /* shouldn't happen */) {
/* Integer too big to fit the buffer, skip it. */
#ifdef WARNING
warning("update_environment_buffer_entry(): truncated fd: %d [%d]\n",
* they are not called often enough.
*/
inline static int tracked_fds_find(int fd) always_inline;
-static int tracked_fds_find(int fd) {
+inline static int tracked_fds_find(int fd) {
assert(fd >= 0);
if (fd < TRACKFDS_STATIC_COUNT) {