adamwill / rpms / openscap

Forked from rpms/openscap 3 years ago
Clone

Blame SOURCES/openscap-1.3.4-fix-environmentvariable58-regression.patch

d48c07
diff --git a/src/OVAL/probes/independent/environmentvariable58_probe.c b/src/OVAL/probes/independent/environmentvariable58_probe.c
d48c07
index 552ce6700..77233aeeb 100644
d48c07
--- a/src/OVAL/probes/independent/environmentvariable58_probe.c
d48c07
+++ b/src/OVAL/probes/independent/environmentvariable58_probe.c
d48c07
@@ -96,32 +96,32 @@ static int read_environment(SEXP_t *pid_ent, SEXP_t *name_ent, probe_ctx *ctx)
d48c07
 	ssize_t buffer_used;
d48c07
 	size_t buffer_size;
d48c07
 
d48c07
+	const char *extra_vars = getenv("OSCAP_CONTAINER_VARS");
d48c07
+	if (extra_vars && *extra_vars) {
d48c07
+		char *vars = strdup(extra_vars);
d48c07
+		char *tok, *eq_chr, *str, *strp;
d48c07
+
d48c07
+		for (str = vars; ; str = NULL) {
d48c07
+			tok = strtok_r(str, "\n", &strp;;
d48c07
+			if (tok == NULL)
d48c07
+				break;
d48c07
+			eq_chr = strchr(tok, '=');
d48c07
+			if (eq_chr == NULL)
d48c07
+				continue;
d48c07
+			PROBE_ENT_I32VAL(pid_ent, pid, pid = -1;, pid = 0;);
d48c07
+			collect_variable(tok, eq_chr - tok, pid, name_ent, ctx);
d48c07
+		}
d48c07
+
d48c07
+		free(vars);
d48c07
+		return 0;
d48c07
+	}
d48c07
+
d48c07
 	const char *prefix = getenv("OSCAP_PROBE_ROOT");
d48c07
 	snprintf(path, PATH_MAX, "%s/proc", prefix ? prefix : "");
d48c07
 	d = opendir(path);
d48c07
 	if (d == NULL) {
d48c07
-		const char *extra_vars = getenv("OSCAP_CONTAINER_VARS");
d48c07
-		if (!extra_vars) {
d48c07
-			dE("Can't read %s/proc: errno=%d, %s.", prefix ? prefix : "", errno, strerror(errno));
d48c07
-			return PROBE_EACCESS;
d48c07
-		} else {
d48c07
-			char *vars = strdup(extra_vars);
d48c07
-			char *tok, *eq_chr, *str, *strp;
d48c07
-
d48c07
-			for (str = vars; ; str = NULL) {
d48c07
-				tok = strtok_r(str, "\n", &strp;;
d48c07
-				if (tok == NULL)
d48c07
-					break;
d48c07
-				eq_chr = strchr(tok, '=');
d48c07
-				if (eq_chr == NULL)
d48c07
-					continue;
d48c07
-				PROBE_ENT_I32VAL(pid_ent, pid, pid = -1;, pid = 0;);
d48c07
-				collect_variable(tok, eq_chr - tok, pid, name_ent, ctx);
d48c07
-			}
d48c07
-
d48c07
-			free(vars);
d48c07
-			return 0;
d48c07
-		}
d48c07
+		dE("Can't read %s/proc: errno=%d, %s.", prefix ? prefix : "", errno, strerror(errno));
d48c07
+		return PROBE_EACCESS;
d48c07
 	}
d48c07
 
d48c07
 	if ((buffer = realloc(NULL, BUFFER_SIZE)) == NULL) {