Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions src/OVAL/oval_directives.c
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,10 @@ int oval_directives_model_import_source(struct oval_directives_model *model, str
/* make sure this is a right schema and tag */
tagname = (char *)xmlTextReaderLocalName(context.reader);
namespace = (char *)xmlTextReaderNamespaceUri(context.reader);
int is_ovaldir = strcmp((const char *)OVAL_DIRECTIVES_NAMESPACE, namespace) == 0;
int is_ovaldir = 0;
if (namespace != NULL) {
is_ovaldir = strcmp((const char *)OVAL_DIRECTIVES_NAMESPACE, namespace) == 0;
}
/* start parsing */
if (is_ovaldir && (strcmp(tagname, OVAL_ROOT_ELM_DIRECTIVES) == 0)) {
ret = oval_directives_model_parse(context.reader, &context);
Expand Down Expand Up @@ -300,7 +303,10 @@ static int oval_directives_model_parse(xmlTextReaderPtr reader, struct oval_pars
char *tagname = (char *)xmlTextReaderLocalName(reader);
char *namespace = (char *)xmlTextReaderNamespaceUri(reader);

int is_ovaldir = strcmp((const char*)OVAL_DIRECTIVES_NAMESPACE, namespace) == 0;
int is_ovaldir = 0;
if (namespace != NULL) {
is_ovaldir = strcmp((const char*)OVAL_DIRECTIVES_NAMESPACE, namespace) == 0;
}
if (is_ovaldir && (strcmp(tagname, "generator") == 0)) {
struct oval_generator *gen;
gen = oval_directives_model_get_generator(context->directives_model);
Expand Down
5 changes: 4 additions & 1 deletion src/OVAL/oval_parser.c
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,10 @@ int oval_definition_model_parse(xmlTextReaderPtr reader, struct oval_parser_cont
char *tagname = (char *)xmlTextReaderLocalName(reader);
char *namespace = (char *)xmlTextReaderNamespaceUri(reader);

int is_oval = strcmp((const char *)OVAL_DEFINITIONS_NAMESPACE, namespace) == 0;
int is_oval = 0;
if (namespace != NULL) {
is_oval = strcmp((const char *)OVAL_DEFINITIONS_NAMESPACE, namespace) == 0;
}
if (is_oval && (strcmp(tagname, tagname_definitions) == 0)) {
ret = oval_parser_parse_tag(reader, context, &oval_definition_parse_tag, NULL);
} else if (is_oval && strcmp(tagname, tagname_tests) == 0) {
Expand Down
10 changes: 8 additions & 2 deletions src/OVAL/oval_sysInfo.c
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,10 @@ static int _oval_sysinfo_parse_tag(xmlTextReaderPtr reader, struct oval_parser_c
char *namespace = (char *)xmlTextReaderNamespaceUri(reader);
int return_code = 0;

int is_ovalsys = strcmp((const char *)OVAL_SYSCHAR_NAMESPACE, namespace) == 0;
int is_ovalsys = 0;
if (namespace != NULL) {
is_ovalsys = strcmp((const char *)OVAL_SYSCHAR_NAMESPACE, namespace) == 0;
}
if (is_ovalsys && (strcmp(tagname, "os_name") == 0)) {
return_code = oscap_parser_text_value(reader, &_oval_sysinfo_parse_tag_consume_os_name, sysinfo);
} else if (is_ovalsys && (strcmp(tagname, "os_version") == 0)) {
Expand Down Expand Up @@ -282,7 +285,10 @@ int oval_sysinfo_parse_tag(xmlTextReaderPtr reader, struct oval_parser_context *
char *namespace = (char *)xmlTextReaderNamespaceUri(reader);
int return_code=0;

int is_ovalsys = strcmp((const char *)OVAL_SYSCHAR_NAMESPACE, namespace) == 0;
int is_ovalsys = 0;
if (namespace != NULL) {
is_ovalsys = strcmp((const char *)OVAL_SYSCHAR_NAMESPACE, namespace) == 0;
}
if (is_ovalsys) {
return_code = oval_parser_parse_tag(reader, context, &_oval_sysinfo_parse_tag, sysinfo);
} else {
Expand Down
10 changes: 8 additions & 2 deletions src/OVAL/oval_sysInterface.c
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,10 @@ static int _oval_sysint_parse_tag(xmlTextReaderPtr reader, struct oval_parser_co
char *namespace = (char *)xmlTextReaderNamespaceUri(reader);
int return_code = 0;

int is_ovalsys = strcmp((const char *)OVAL_SYSCHAR_NAMESPACE, namespace) == 0;
int is_ovalsys = 0;
if (namespace != NULL) {
is_ovalsys = strcmp((const char *)OVAL_SYSCHAR_NAMESPACE, namespace) == 0;
}
if (is_ovalsys && (strcmp(tagname, "interface_name") == 0)) {
return_code = oscap_parser_text_value(reader, &oval_consume_interface_name, sysint);
} else if (is_ovalsys && (strcmp(tagname, "ip_address") == 0)) {
Expand Down Expand Up @@ -209,7 +212,10 @@ int oval_sysint_parse_tag(xmlTextReaderPtr reader,
char *namespace = (char *)xmlTextReaderNamespaceUri(reader);
int return_code = 0;

int is_ovalsys = strcmp((const char *)OVAL_SYSCHAR_NAMESPACE, namespace) == 0;
int is_ovalsys = 0;
if (namespace != NULL) {
is_ovalsys = strcmp((const char *)OVAL_SYSCHAR_NAMESPACE, namespace) == 0;
}
if (is_ovalsys && (strcmp(tagname, "interface") == 0)) {
return_code = oval_parser_parse_tag(reader, context, &_oval_sysint_parse_tag, sysint);
} else {
Expand Down
2 changes: 1 addition & 1 deletion src/OVAL/oval_sysItem.c
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ static int _oval_sysitem_parse_subtag(xmlTextReaderPtr reader, struct oval_parse
char *tagname = (char *)xmlTextReaderLocalName(reader);
char *namespace = (char *)xmlTextReaderNamespaceUri(reader);
int return_code = 0;
if (strcmp((const char *)OVAL_SYSCHAR_NAMESPACE, namespace) == 0) {
if (oscap_strcmp((const char *)OVAL_SYSCHAR_NAMESPACE, namespace) == 0) {
/* This is a message */
return_code = oval_message_parse_tag(reader, context, (oscap_consumer_func) _oval_sysitem_parse_subtag_message_consumer, sysitem);
} else {
Expand Down
6 changes: 5 additions & 1 deletion src/OVAL/oval_sysModel.c
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,11 @@ int oval_syschar_model_import_source(struct oval_syschar_model *model, struct os
/* make sure this is syschar */
char *tagname = (char *)xmlTextReaderLocalName(context.reader);
char *namespace = (char *)xmlTextReaderNamespaceUri(context.reader);
int is_ovalsys = strcmp((const char *)OVAL_SYSCHAR_NAMESPACE, namespace) == 0;

int is_ovalsys = 0;
if (namespace != NULL) {
is_ovalsys = strcmp((const char *)OVAL_SYSCHAR_NAMESPACE, namespace) == 0;
}
/* start parsing */
if (is_ovalsys && (strcmp(tagname, OVAL_ROOT_ELM_SYSCHARS) == 0)) {
ret = oval_syschar_model_parse(context.reader, &context);
Expand Down
5 changes: 4 additions & 1 deletion src/OVAL/oval_sys_parser.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,10 @@ int oval_syschar_model_parse(xmlTextReaderPtr reader, struct oval_parser_context
char *tagname = (char *)xmlTextReaderLocalName(reader);
char *namespace = (char *)xmlTextReaderNamespaceUri(reader);

int is_ovalsys = strcmp((const char*)OVAL_SYSCHAR_NAMESPACE, namespace) == 0;
int is_ovalsys = 0;
if (namespace != NULL) {
is_ovalsys = strcmp((const char*)OVAL_SYSCHAR_NAMESPACE, namespace) == 0;
}
if (is_ovalsys && (strcmp(tagname, "generator") == 0)) {
struct oval_generator *gen;
gen = oval_syschar_model_get_generator(context->syschar_model);
Expand Down
5 changes: 4 additions & 1 deletion src/OVAL/oval_syschar.c
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,10 @@ int oval_syschar_parse_tag(xmlTextReaderPtr reader, struct oval_parser_context *
char *namespace = (char *)xmlTextReaderNamespaceUri(reader);
int return_code = 0;

int is_ovalsys = strcmp((const char *)OVAL_SYSCHAR_NAMESPACE, namespace) == 0;
int is_ovalsys = 0;
if (namespace != NULL) {
is_ovalsys = strcmp((const char *)OVAL_SYSCHAR_NAMESPACE, namespace) == 0;
}
if (is_ovalsys && (strcmp(tagname, "object") == 0)) {
char *object_id = (char *)xmlTextReaderGetAttribute(reader, BAD_CAST "id");
struct oval_object *object = oval_definition_model_get_new_object(context->definition_model, object_id);
Expand Down
2 changes: 1 addition & 1 deletion src/OVAL/oval_variable.c
Original file line number Diff line number Diff line change
Expand Up @@ -1082,7 +1082,7 @@ static int _oval_variable_parse_constant_tag(xmlTextReaderPtr reader, struct ova
xmlChar *namespace = xmlTextReaderNamespaceUri(reader);
struct oval_variable *variable = (struct oval_variable *)user;

if (strcmp("value", (char *) tagname) || strcmp(DEFINITION_NAMESPACE, (char *) namespace)) {
if (oscap_strcmp("value", (char *) tagname) || oscap_strcmp(DEFINITION_NAMESPACE, (char *) namespace)) {
dW("Invalid element <%s:%s> in constant variable %s on line %d.",
namespace, tagname, variable->id, xmlTextReaderGetParserLineNumber(reader));
goto out;
Expand Down
14 changes: 11 additions & 3 deletions src/OVAL/results/oval_resModel.c
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,11 @@ int oval_results_model_import_source(struct oval_results_model *model, struct os
/* make sure these are results */
tagname = (char *)xmlTextReaderLocalName(context.reader);
namespace = (char *)xmlTextReaderNamespaceUri(context.reader);
int is_ovalres = strcmp((const char *)OVAL_RESULTS_NAMESPACE, namespace) == 0;

int is_ovalres = 0;
if (namespace != NULL) {
is_ovalres = strcmp((const char *)OVAL_RESULTS_NAMESPACE, namespace) == 0;
}
/* star parsing */
if (is_ovalres && (strcmp(tagname, OVAL_ROOT_ELM_RESULTS) == 0)) {
ret = oval_results_model_parse(context.reader, &context);
Expand Down Expand Up @@ -333,8 +337,12 @@ int oval_results_model_parse(xmlTextReaderPtr reader, struct oval_parser_context
char *tagname = (char *)xmlTextReaderLocalName(reader);
char *namespace = (char *)xmlTextReaderNamespaceUri(reader);

int is_ovalres = strcmp((const char *)OVAL_RESULTS_NAMESPACE, namespace) == 0;
int is_ovaldef = (is_ovalres) ? false : (strcmp((const char *)OVAL_DEFINITIONS_NAMESPACE, namespace) == 0);
int is_ovalres = 0;
int is_ovaldef = 0;
if (namespace != NULL) {
is_ovalres = strcmp((const char *)OVAL_RESULTS_NAMESPACE, namespace) == 0;
is_ovaldef = (is_ovalres) ? false : (strcmp((const char *)OVAL_DEFINITIONS_NAMESPACE, namespace) == 0);
}
if (is_ovalres && (strcmp(tagname, "generator") == 0)) {
struct oval_generator *gen;
gen = oval_results_model_get_generator(context->results_model);
Expand Down
5 changes: 4 additions & 1 deletion src/OVAL/results/oval_resultSystem.c
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,10 @@ int oval_result_system_parse_tag(xmlTextReaderPtr reader, struct oval_parser_con
char *namespace = (char *)xmlTextReaderNamespaceUri(reader);
int return_code = 0;

int is_ovalres = strcmp((const char *)OVAL_RESULTS_NAMESPACE, namespace) == 0;
int is_ovalres = 0;
if (namespace != NULL) {
is_ovalres = strcmp((const char *)OVAL_RESULTS_NAMESPACE, namespace) == 0;
}
if (is_ovalres && (strcmp(tagname, "system") == 0)) {
/* create new empty syschar for this model */
struct oval_syschar_model *syschar_model = oval_syschar_model_new(context->definition_model);
Expand Down
7 changes: 7 additions & 0 deletions tests/oval_details/openscap_2288_regression.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/usr/bin/env bash

set -e -o pipefail

. $builddir/tests/test_common.sh

$OSCAP info "${top_srcdir}/tests/oval_details/openscap_2288_regression.xml"
5 changes: 5 additions & 0 deletions tests/oval_details/openscap_2288_regression.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0"?>
<oval_definitions xmlns:oval-def="http://oval.mitre.org/XMLSchema/oval-definitions-5" xmlns:oval="http://oval.mitre.org/XMLSchema/oval-common-5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ind-def="http://oval.mitre.org/XMLSchema/oval-definitions-5#independent" xmlns:unix-def="http://oval.mitre.org/XMLSchema/oval-definitions-5#unix" xmlns:lin-def="http://oval.mitre.org/XMLSchema/oval-definitions-5#linux" xmlNs="http://oval.mitre.org/XMLSchema/oval-definitions-5" xsi:schemaLocation="http://oval.mitre.org/XMLSchema/oval-definitions-5#unix unix-definitions-schema.xsd http://oval.mitre.org/XMLSchema/oval-definitions-5#independent independent-definitions-schema.xsd http://oval.mitre.org/XMLSchema/oval-definitions-5#linux linux-definitions-schema.xsd http://oval.mitre.org/XMLSchema/oval-definitions-5 oval-definitions-schema.xsd http://oval.mitre.org/XMLSchema/oval-common-5 oval-common-schema.xsd">
<generator>
</generator>
</oval_definitions>
Loading