Skip to content

Commit 2eab540

Browse files
authored
Merge pull request #1215 from jan-cerny/file_probe_defects
Plug memory leaks
2 parents 8b4f74e + 06a8427 commit 2eab540

File tree

1 file changed

+15
-19
lines changed

1 file changed

+15
-19
lines changed

src/OVAL/probes/unix/file_probe.c

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -283,13 +283,9 @@ static SEXP_t *get_size(struct stat *st, SEXP_t *sexp)
283283
}
284284
}
285285

286-
static SEXP_t *MODEP(struct stat *statp, unsigned int bit)
286+
static bool MODEP(struct stat *statp, unsigned int bit)
287287
{
288-
if (statp->st_mode & bit) {
289-
return SEXP_number_newb(true);
290-
} else {
291-
return SEXP_number_newb(false);
292-
}
288+
return (statp->st_mode & bit);
293289
}
294290

295291
static SEXP_t *has_extended_acl(const char *path)
@@ -380,19 +376,19 @@ static int file_cb(const char *prefix, const char *p, const char *f, void *ptr,
380376
"c_time", OVAL_DATATYPE_SEXP, get_ctime(&st, &se_ctime_mem, over),
381377
"m_time", OVAL_DATATYPE_SEXP, get_mtime(&st, &se_mtime_mem, over),
382378
"size", OVAL_DATATYPE_SEXP, get_size(&st, &se_size_mem),
383-
"suid", OVAL_DATATYPE_SEXP, MODEP(&st, S_ISUID),
384-
"sgid", OVAL_DATATYPE_SEXP, MODEP(&st, S_ISGID),
385-
"sticky", OVAL_DATATYPE_SEXP, MODEP(&st, S_ISVTX),
386-
"uread", OVAL_DATATYPE_SEXP, MODEP(&st, S_IRUSR),
387-
"uwrite", OVAL_DATATYPE_SEXP, MODEP(&st, S_IWUSR),
388-
"uexec", OVAL_DATATYPE_SEXP, MODEP(&st, S_IXUSR),
389-
"gread", OVAL_DATATYPE_SEXP, MODEP(&st, S_IRGRP),
390-
"gwrite", OVAL_DATATYPE_SEXP, MODEP(&st, S_IWGRP),
391-
"gexec", OVAL_DATATYPE_SEXP, MODEP(&st, S_IXGRP),
392-
"oread", OVAL_DATATYPE_SEXP, MODEP(&st, S_IROTH),
393-
"owrite", OVAL_DATATYPE_SEXP, MODEP(&st, S_IWOTH),
394-
"oexec", OVAL_DATATYPE_SEXP, MODEP(&st, S_IXOTH),
395-
"has_extended_acl", OVAL_DATATYPE_SEXP, se_acl,
379+
"suid", OVAL_DATATYPE_BOOLEAN, MODEP(&st, S_ISUID),
380+
"sgid", OVAL_DATATYPE_BOOLEAN, MODEP(&st, S_ISGID),
381+
"sticky", OVAL_DATATYPE_BOOLEAN, MODEP(&st, S_ISVTX),
382+
"uread", OVAL_DATATYPE_BOOLEAN, MODEP(&st, S_IRUSR),
383+
"uwrite", OVAL_DATATYPE_BOOLEAN, MODEP(&st, S_IWUSR),
384+
"uexec", OVAL_DATATYPE_BOOLEAN, MODEP(&st, S_IXUSR),
385+
"gread", OVAL_DATATYPE_BOOLEAN, MODEP(&st, S_IRGRP),
386+
"gwrite", OVAL_DATATYPE_BOOLEAN, MODEP(&st, S_IWGRP),
387+
"gexec", OVAL_DATATYPE_BOOLEAN, MODEP(&st, S_IXGRP),
388+
"oread", OVAL_DATATYPE_BOOLEAN, MODEP(&st, S_IROTH),
389+
"owrite", OVAL_DATATYPE_BOOLEAN, MODEP(&st, S_IWOTH),
390+
"oexec", OVAL_DATATYPE_BOOLEAN, MODEP(&st, S_IXOTH),
391+
"has_extended_acl", OVAL_DATATYPE_SEXP, se_acl,
396392
NULL);
397393
if (se_acl == NULL) {
398394
probe_item_ent_add(item, "has_extended_acl", NULL, SEXP_number_newb(true));

0 commit comments

Comments
 (0)