Suppress Coverity Scan false positive

** CID 646042:       Insecure data handling  (INTEGER_OVERFLOW)
/src/isolate.c: 59           in compute_worker_data_limit()

Signed-off-by: Dimitri Papadopoulos <3350651-DimitriPapadopoulos@users.noreply.gitlab.com>
This commit is contained in:
Dimitri Papadopoulos
2026-06-07 10:15:09 +02:00
parent 49f9956eee
commit c4fdd29a45
+9 -2
View File
@@ -45,6 +45,7 @@ static rlim_t compute_worker_data_limit(unsigned headroom_kb)
/* statm: size resident shared text lib data dt (all in pages) */
unsigned long size, resident, shared, text, lib, data;
int n;
long pagesize;
f = fopen("/proc/self/statm", "r");
if (!f)
@@ -56,8 +57,14 @@ static rlim_t compute_worker_data_limit(unsigned headroom_kb)
if (n != 6)
return 0;
return (rlim_t)data * (rlim_t)sysconf(_SC_PAGESIZE) +
(rlim_t)headroom_kb * 1024;
pagesize = sysconf(_SC_PAGESIZE);
if (pagesize < 0)
return 0;
/* A process where data * pagesize overflows unsigned long (64-bit)
* would use more than 16 million TB of data pages!
*
* coverity[INTEGER_OVERFLOW] */
return (rlim_t)data * (rlim_t)pagesize + (rlim_t)headroom_kb * 1024;
}
/* Apply per-worker heap cap (RLIMIT_DATA) unless explicitly disabled. */