On 2023-11-26 10:28:28+0100, Willy Tarreau wrote:
Hi Thomas,
+int test_rlimit(void) +{
- struct rlimit rlim = {
.rlim_cur = 1 << 20,
.rlim_max = 1 << 20,
- };
- int ret;
- ret = setrlimit(RLIMIT_CORE, &rlim);
- if (ret)
return -1;
- rlim.rlim_cur = 0;
- rlim.rlim_max = 0;
- ret = getrlimit(RLIMIT_CORE, &rlim);
- if (ret)
return -1;
- if (rlim.rlim_cur != 1 << 20)
return -1;
- if (rlim.rlim_max != 1 << 20)
return -1;
I think you should used two different values here for cur and max so that you can also detect stupid API bugs such as a union being used instead of a struct, or copy-pastes in the implementation etc. For example using 1<<20 and 1<<21 should do the trick.
Good point, I incorporated the suggestion.
Otherwise Ack-by me for the whole series, of course.
Thanks!
FYI I retested and pushed the series.
Thomas