本文整理汇总了C++中oscap_free函数的典型用法代码示例。如果您正苦于以下问题:C++ oscap_free函数的具体用法?C++ oscap_free怎么用?C++ oscap_free使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了oscap_free函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _oval_test_parse_tag
static int _oval_test_parse_tag(xmlTextReaderPtr reader, struct oval_parser_context *context, void *user)
{
struct oval_test *test = (struct oval_test *)user;
char *tagname = (char *)xmlTextReaderLocalName(reader);
int return_code = 0;
if ((strcmp(tagname, "notes") == 0)) {
return_code = oval_parser_parse_tag(reader, context, &_oval_test_parse_notes, test);
} else if ((strcmp(tagname, "object") == 0)) {
char *object_ref = (char *)xmlTextReaderGetAttribute(reader, BAD_CAST "object_ref");
if (object_ref != NULL) {
struct oval_definition_model *model = context->definition_model;
struct oval_object *object = oval_definition_model_get_new_object(model, object_ref);
oscap_free(object_ref);
object_ref = NULL;
oval_test_set_object(test, object);
}
} else if ((strcmp(tagname, "state") == 0)) {
char *state_ref = (char *)xmlTextReaderGetAttribute(reader, BAD_CAST "state_ref");
if (state_ref != NULL) {
struct oval_definition_model *model = context->definition_model;
struct oval_state *state = oval_definition_model_get_new_state(model, state_ref);
oval_test_add_state(test, state);
oscap_free(state_ref);
state_ref = NULL;
}
} else {
oscap_dlprintf(DBG_W, "Skipping tag <%s>.\n", tagname);
return_code = oval_parser_skip_tag(reader, context);
}
oscap_free(tagname);
return return_code;
}
示例2: ds_sds_compose_component_add_script_content
static inline int ds_sds_compose_component_add_script_content(xmlNode *component, const char *filepath)
{
FILE* f = fopen(filepath, "r");
if (!f) {
oscap_seterr(OSCAP_EFAMILY_GLIBC, "Can't read plain text from file '%s'.", filepath);
return -1;
}
fseek(f, 0, SEEK_END);
long int length = ftell(f);
fseek(f, 0, SEEK_SET);
if (length >= 0) {
char* buffer = oscap_alloc((length + 1) * sizeof(char));
if (fread(buffer, length, 1, f) != 1) {
oscap_seterr(OSCAP_EFAMILY_GLIBC, "Error while reading from file '%s'.", filepath);
fclose(f);
oscap_free(buffer);
return -1;
}
fclose(f);
buffer[length] = '\0';
xmlNsPtr local_ns = xmlNewNs(component, BAD_CAST sce_xccdf_ns_uri, BAD_CAST "oscap-sce-xccdf-stream");
xmlNewTextChild(component, local_ns, BAD_CAST "script", BAD_CAST buffer);
oscap_free(buffer);
return 0;
} else {
oscap_seterr(OSCAP_EFAMILY_GLIBC, "No data read from file '%s'.", filepath);
fclose(f);
return -1;
}
}
示例3: probe_main
int probe_main (probe_ctx *ctx, void *arg)
{
SEXP_t *object;
struct runlevel_req request_st;
struct runlevel_rep *reply_st = NULL;
object = probe_ctx_getobject(ctx);
request_st.service_name_ent = probe_obj_getent(object, "service_name", 1);
if (request_st.service_name_ent == NULL) {
dI("%s: element not found", "service_name");
return PROBE_ENOELM;
}
request_st.runlevel_ent = probe_obj_getent(object, "runlevel", 1);
if (request_st.runlevel_ent == NULL) {
SEXP_free(request_st.service_name_ent);
dI("%s: element not found", "runlevel");
return PROBE_ENOELM;
}
if (get_runlevel(&request_st, &reply_st) == -1) {
SEXP_t *msg;
msg = probe_msg_creat(OVAL_MESSAGE_LEVEL_ERROR, "get_runlevel failed.");
probe_cobj_add_msg(probe_ctx_getresult(ctx), msg);
SEXP_free(msg);
probe_cobj_set_flag(probe_ctx_getresult(ctx), SYSCHAR_FLAG_ERROR);
} else {
struct runlevel_rep *next_rep;
SEXP_t *item;
while (reply_st != NULL) {
dI("get_runlevel: [0]=\"%s\", [1]=\"%s\", [2]=\"%d\", [3]=\"%d\"",
reply_st->service_name, reply_st->runlevel, reply_st->start, reply_st->kill);
item = probe_item_create(OVAL_UNIX_RUNLEVEL, NULL,
"service_name", OVAL_DATATYPE_STRING, reply_st->service_name,
"runlevel", OVAL_DATATYPE_STRING, reply_st->runlevel,
"start", OVAL_DATATYPE_BOOLEAN, reply_st->start,
"kill", OVAL_DATATYPE_BOOLEAN, reply_st->kill,
NULL);
probe_item_collect(ctx, item);
next_rep = reply_st->next;
oscap_free(reply_st->service_name);
oscap_free(reply_st->runlevel);
oscap_free(reply_st);
reply_st = next_rep;
}
}
SEXP_free(request_st.runlevel_ent);
SEXP_free(request_st.service_name_ent);
return 0;
}
示例4: oval_definition_model_free
void oval_definition_model_free(struct oval_definition_model *model)
{
__attribute__nonnull__(model);
oval_string_map_free(model->definition_map, (oscap_destruct_func) oval_definition_free);
oval_string_map_free(model->object_map, (oscap_destruct_func) oval_object_free);
oval_string_map_free(model->state_map, (oscap_destruct_func) oval_state_free);
oval_string_map_free(model->test_map, (oscap_destruct_func) oval_test_free);
oval_string_map_free(model->variable_map, (oscap_destruct_func) oval_variable_free);
if (model->vardef_map != NULL)
oval_string_map_free(model->vardef_map, (oscap_destruct_func) oval_string_map_free0);
if (model->bound_variable_models)
oval_collection_free_items(model->bound_variable_models,
(oscap_destruct_func) oval_variable_model_free);
if (model->schema != NULL)
oscap_free(model->schema);
model->definition_map = NULL;
model->object_map = NULL;
model->state_map = NULL;
model->test_map = NULL;
model->variable_map = NULL;
model->schema = NULL;
oval_generator_free(model->generator);
oscap_free(model);
}
示例5: _oval_affected_parse_tag
static int _oval_affected_parse_tag(xmlTextReaderPtr reader, struct oval_parser_context *context, void *user)
{
struct oval_affected *affected = (struct oval_affected *)user;
int return_code;
xmlChar *tagname = xmlTextReaderLocalName(reader);
//xmlChar *namespace = xmlTextReaderNamespaceUri(reader);
if (strcmp((char *)tagname, "platform") == 0) {
char *platform = NULL;
return_code = oscap_parser_text_value(reader, &oscap_text_consumer, &platform);
if (platform != NULL) {
oval_affected_add_platform(affected, platform);
oscap_free(platform);
}
} else if (strcmp((char *)tagname, "product") == 0) {
char *product = NULL;
return_code = oscap_parser_text_value(reader, &oscap_text_consumer, &product);
if (product != NULL) {
oval_affected_add_product(affected, product);
oscap_free(product);
}
} else {
dI("Skipping tag: %s", tagname);
return_code = oval_parser_skip_tag(reader, context);
}
oscap_free(tagname);
return return_code;
}
示例6: xccdf_ident_free
void xccdf_ident_free(struct xccdf_ident *ident)
{
if (ident) {
oscap_free(ident->id);
oscap_free(ident->system);
oscap_free(ident);
}
}
示例7: xccdf_profile_note_free
void xccdf_profile_note_free(struct xccdf_profile_note *note)
{
if (note) {
oscap_free(note->reftag);
oscap_text_free(note->text);
oscap_free(note);
}
}
示例8: xccdf_check_content_ref_free
void xccdf_check_content_ref_free(struct xccdf_check_content_ref *ref)
{
if (ref) {
oscap_free(ref->name);
oscap_free(ref->href);
oscap_free(ref);
}
}
示例9: rds_asset_index_free
void rds_asset_index_free(struct rds_asset_index *s)
{
if (s != NULL) {
oscap_list_free0(s->reports);
oscap_free(s->id);
oscap_free(s);
}
}
示例10: oval_value_free
void oval_value_free(struct oval_value *value)
{
if (value) {
oscap_free(value->text);
value->text = NULL;
oscap_free(value);
}
}
示例11: xccdf_fixtext_free
void xccdf_fixtext_free(struct xccdf_fixtext *item)
{
if (item) {
oscap_text_free(item->text);
oscap_free(item->fixref);
oscap_free(item);
}
}
示例12: xccdf_check_export_free
void xccdf_check_export_free(struct xccdf_check_export *item)
{
if (item) {
oscap_free(item->name);
oscap_free(item->value);
oscap_free(item);
}
}
示例13: xccdf_check_import_free
void xccdf_check_import_free(struct xccdf_check_import *item)
{
if (item) {
oscap_free(item->name);
oscap_free(item->xpath);
oscap_free(item->content);
oscap_free(item);
}
}
示例14: assume_d
static SEXP_t *oval_probe_cmd_obj_eval(SEXP_t *sexp, void *arg)
{
char *id_str;
struct oval_definition_model *defs;
struct oval_object *obj;
struct oval_syschar *res;
oval_pext_t *pext = (oval_pext_t *) arg;
SEXP_t *ret, *ret_code;
int r;
assume_d (sexp != NULL, NULL);
assume_d (arg != NULL, NULL);
if (!SEXP_stringp(sexp)) {
oscap_dlprintf(DBG_E, "Invalid argument: type=%s.\n", SEXP_strtype(sexp));
return (NULL);
}
id_str = SEXP_string_cstr(sexp);
defs = oval_syschar_model_get_definition_model(*(pext->model));
obj = oval_definition_model_get_object(defs, id_str);
ret = SEXP_list_new (sexp, NULL);
oscap_dlprintf(DBG_I, "Get_object: %s.\n", id_str);
if (obj == NULL) {
oscap_dlprintf(DBG_E, "Can't find obj: id=%s.\n", id_str);
oscap_free(id_str);
SEXP_free(ret);
return (NULL);
}
oscap_clearerr();
r = oval_probe_query_object(pext->sess_ptr, obj, OVAL_PDFLAG_NOREPLY|OVAL_PDFLAG_SLAVE, &res);
if (r < 0)
ret_code = SEXP_number_newu((unsigned int) SYSCHAR_FLAG_COMPLETE);
else
ret_code = SEXP_number_newu((unsigned int) oval_syschar_get_flag(res));
SEXP_list_add(ret, ret_code);
SEXP_free(ret_code);
if (oscap_err()) {
oscap_dlprintf(DBG_E, "Failed: id: %s, err: %d, %s.\n",
id_str, oscap_err_family(), oscap_err_desc());
oscap_clearerr();
oscap_free(id_str);
SEXP_free(ret);
return (NULL);
}
oscap_free(id_str);
return (ret);
}
示例15: oval_message_free
void oval_message_free(struct oval_message *message)
{
__attribute__nonnull__(message);
if (message->text != NULL)
oscap_free(message->text);
message->text = NULL;
oscap_free(message);
}