Hello Mickaël Salaün,
Commit 6a500b22971c ("selftests/landlock: Add tests for audit flags
and domain IDs") from Mar 20, 2025 (linux-next), leads to the
following Smatch static checker warning:
tools/testing/selftests/landlock/audit.h:408 audit_init_filter_exe()
warn: unsigned 'filter->exe_len' is never less than zero.
tools/testing/selftests/landlock/audit.h
399 static int audit_init_filter_exe(struct audit_filter *filter, const
char *path)
400 {
401 char *absolute_path = NULL;
402
403 /* It is assume that there is not already filtering rules. */
404 filter->record_type = AUDIT_EXE;
405 if (!path) {
406 filter->exe_len = readlink("/proc/self/exe",
filter->exe,
407 sizeof(filter->exe) - 1);
--> 408 if (filter->exe_len < 0)
size_t can't be negative.
409 return -errno;
410
411 return 0;
412 }
413
414 absolute_path = realpath(path, NULL);
415 if (!absolute_path)
416 return -errno;
417
418 /* No need for the terminating NULL byte. */
419 filter->exe_len = strlen(absolute_path);
420 if (filter->exe_len > sizeof(filter->exe))
421 return -E2BIG;
422
423 memcpy(filter->exe, absolute_path, filter->exe_len);
424 free(absolute_path);
425 return 0;
426 }
regards,
dan carpenter