*/
inline static int tracked_fds_find(int fd) always_inline;
inline static int tracked_fds_find(int fd) {
- assert(fd >= 0);
+ /* Invalid file descriptor. No assert() as we're called from the hooked
+ * macro. */
+ if (unlikely(fd < 0)) {
+ return 0;
+ }
if (fd < TRACKFDS_STATIC_COUNT) {
return tracked_fds[fd];
}
static int tracked_fds_find_slow(int fd) {
assert(initialized);
+ assert(fd >= 0);
if (tracked_fds_list_count == 0) {
return 0;
putc_unlocked('\n', stdout);
/* Test invalid stuff. */
+ write(-3, "foo", 3);
close(-42);
close(-4711);
/* Can't test this, results in a segfault with the "normal" fclose(). */