On Fri, 26 Jan 2024 17:29:10 GMT, Gerard Ziemski <gziem...@openjdk.org> wrote:

>> Jaikiran Pai has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   use the right include for rlim_t - <sys/resource.h>
>
> src/jdk.jdwp.agent/unix/native/libjdwp/exec_md.c line 129:
> 
>> 127:          * and assume all were opened for the parent process and
>> 128:          * copied over to this child process. we close them all */
>> 129:         const rlim_t max_fd = sysconf(_SC_OPEN_MAX);
> 
> Why not use `int`, like the original code, instead of  `rlim_t` - as per man 
> page `close()` expects `int`, not  `rlim_t`, ex:
> 
> 
>         const int max_fd = (int)sysconf(_SC_OPEN_MAX);
>         JDI_ASSERT(max_fd != -1);
>         int fd;
>          /* leave out standard input/output/error file descriptors */
>          for (fd = STDERR_FILENO + 1; fd < max_fd; fd++) {
>              (void)close(fd);
>          }

Hello Gerard, my understanding is that the limit value configured may exceed 
the int range. I wanted to avoid the overflow by casting it to int in such 
cases. I had noticed close() takes an int, but I couldn't think of any other 
way of avoiding the overflow at this place.

In the JVM parent process we do however limit it to INT_MAX. So maybe I should 
assume that it will be an int cast it to int here, like you suggest, and add a 
code comment explaining this? Does that sound OK?

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/17588#discussion_r1468270331

Reply via email to