check fiu_init() and fiu_enable() return values

This commit is contained in:
Michael Rash
2014-12-07 16:29:30 -05:00
parent 54625819c9
commit 74f114603b
2 changed files with 34 additions and 9 deletions
+24 -7
View File
@@ -61,7 +61,7 @@ static void zero_buf_wrapper(char *buf, int len);
static int is_hostname_str_with_port(const char *str,
char *hostname, size_t hostname_bufsize, int *port);
#if HAVE_LIBFIU
static void enable_fault_injections(fko_cli_options_t * const opts);
static int enable_fault_injections(fko_cli_options_t * const opts);
#endif
#define NAT_ACCESS_STR_TEMPLATE "%s,%d" /*!< Template for a nat access string ip,port with sscanf*/
@@ -171,7 +171,9 @@ main(int argc, char **argv)
#if HAVE_LIBFIU
/* Set any fault injection points early
*/
enable_fault_injections(&options);
if(! enable_fault_injections(&options))
clean_exit(ctx, &options, key, &key_len, hmac_key,
&hmac_key_len, EXIT_FAILURE);
#endif
/* Handle previous execution arguments if required
@@ -477,7 +479,8 @@ main(int argc, char **argv)
if (res == FKO_SUCCESS)
log_msg(LOG_VERBOSITY_NORMAL, "%s", dump_buf);
else
log_msg(LOG_VERBOSITY_WARNING, "Unable to dump FKO context: %s", fko_errstr(res));
log_msg(LOG_VERBOSITY_WARNING, "Unable to dump FKO context: %s",
fko_errstr(res));
}
/* Save packet data payload if requested.
@@ -1298,15 +1301,29 @@ zero_buf_wrapper(char *buf, int len)
}
#if HAVE_LIBFIU
static void
static int
enable_fault_injections(fko_cli_options_t * const opts)
{
int rv = 1;
if(opts->fault_injection_tag[0] != 0x0)
{
fiu_init(0);
fiu_enable(opts->fault_injection_tag, 1, NULL, 0);
if(opts->verbose)
log_msg(LOG_VERBOSITY_NORMAL, "[+] Enable fault injection tag: %s",
opts->fault_injection_tag);
if(fiu_init(0) != 0)
{
log_msg(LOG_VERBOSITY_WARNING, "[*] Unable to set fault injection tag: %s",
opts->fault_injection_tag);
rv = 0;
}
if(fiu_enable(opts->fault_injection_tag, 1, NULL, 0) != 0)
{
log_msg(LOG_VERBOSITY_WARNING, "[*] Unable to set fault injection tag: %s",
opts->fault_injection_tag);
rv = 0;
}
}
return;
return rv;
}
#endif
+10 -2
View File
@@ -994,10 +994,18 @@ enable_fault_injections(fko_srv_options_t * const opts)
{
if(opts->config[CONF_FAULT_INJECTION_TAG] != NULL)
{
fiu_init(0);
if(opts->verbose)
log_msg(LOG_INFO, "Enable fault injection tag: %s",
opts->config[CONF_FAULT_INJECTION_TAG]);
if(fiu_init(0) != 0)
{
fprintf(stderr, "[*] Could not enable fault injection tag: %s\n",
opts->config[CONF_FAULT_INJECTION_TAG]);
clean_exit(opts, NO_FW_CLEANUP, EXIT_FAILURE);
}
if (fiu_enable(opts->config[CONF_FAULT_INJECTION_TAG], 1, NULL, 0) != 0)
{
fprintf(stderr, "[*] Could not enable fault injection: %s\n",
fprintf(stderr, "[*] Could not enable fault injection tag: %s\n",
opts->config[CONF_FAULT_INJECTION_TAG]);
clean_exit(opts, NO_FW_CLEANUP, EXIT_FAILURE);
}