minor fault injection tag rework for fko_set_rand_value() and fko_set_username()
This commit is contained in:
parent
343d0b7f44
commit
c67008b6a8
@ -82,9 +82,6 @@ fko_set_username(fko_ctx_t ctx, const char * const spoof_user)
|
|||||||
{
|
{
|
||||||
if((username = getenv("USER")) == NULL)
|
if((username = getenv("USER")) == NULL)
|
||||||
{
|
{
|
||||||
#if HAVE_LIBFIU
|
|
||||||
fiu_return_on("fko_set_username_strdup1", FKO_ERROR_MEMORY_ALLOCATION);
|
|
||||||
#endif
|
|
||||||
username = strdup("NO_USER");
|
username = strdup("NO_USER");
|
||||||
if(username == NULL)
|
if(username == NULL)
|
||||||
return(FKO_ERROR_MEMORY_ALLOCATION);
|
return(FKO_ERROR_MEMORY_ALLOCATION);
|
||||||
@ -116,7 +113,7 @@ fko_set_username(fko_ctx_t ctx, const char * const spoof_user)
|
|||||||
free(ctx->username);
|
free(ctx->username);
|
||||||
|
|
||||||
#if HAVE_LIBFIU
|
#if HAVE_LIBFIU
|
||||||
fiu_return_on("fko_set_username_strdup2", FKO_ERROR_MEMORY_ALLOCATION);
|
fiu_return_on("fko_set_username_strdup", FKO_ERROR_MEMORY_ALLOCATION);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
ctx->username = strdup(username);
|
ctx->username = strdup(username);
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
#include <fiu.h>
|
#include <fiu.h>
|
||||||
#include <fiu-control.h>
|
#include <fiu-control.h>
|
||||||
#include "fko.h"
|
#include "fko.h"
|
||||||
@ -13,9 +14,8 @@ const char *fiu_tags[] = {
|
|||||||
"fko_set_rand_value_calloc1",
|
"fko_set_rand_value_calloc1",
|
||||||
"fko_set_rand_value_calloc2",
|
"fko_set_rand_value_calloc2",
|
||||||
"fko_set_username_init",
|
"fko_set_username_init",
|
||||||
"fko_set_username_strdup1",
|
|
||||||
"fko_set_username_valuser",
|
"fko_set_username_valuser",
|
||||||
"fko_set_username_strdup2",
|
"fko_set_username_strdup",
|
||||||
"fko_set_timestamp_init",
|
"fko_set_timestamp_init",
|
||||||
"fko_set_timestamp_val",
|
"fko_set_timestamp_val",
|
||||||
"set_spa_digest_type_init",
|
"set_spa_digest_type_init",
|
||||||
@ -36,7 +36,6 @@ const int fiu_rvs[] = {
|
|||||||
FKO_ERROR_MEMORY_ALLOCATION,
|
FKO_ERROR_MEMORY_ALLOCATION,
|
||||||
FKO_ERROR_MEMORY_ALLOCATION,
|
FKO_ERROR_MEMORY_ALLOCATION,
|
||||||
FKO_ERROR_CTX_NOT_INITIALIZED,
|
FKO_ERROR_CTX_NOT_INITIALIZED,
|
||||||
FKO_ERROR_MEMORY_ALLOCATION,
|
|
||||||
FKO_ERROR_INVALID_DATA,
|
FKO_ERROR_INVALID_DATA,
|
||||||
FKO_ERROR_MEMORY_ALLOCATION,
|
FKO_ERROR_MEMORY_ALLOCATION,
|
||||||
FKO_ERROR_CTX_NOT_INITIALIZED,
|
FKO_ERROR_CTX_NOT_INITIALIZED,
|
||||||
@ -53,25 +52,49 @@ const int fiu_rvs[] = {
|
|||||||
|
|
||||||
int main(void) {
|
int main(void) {
|
||||||
fko_ctx_t ctx = NULL;
|
fko_ctx_t ctx = NULL;
|
||||||
int res = 0, i;
|
int res = 0, i, es = EXIT_SUCCESS;
|
||||||
|
int exec=0, success=0, fail=0;
|
||||||
|
|
||||||
fiu_init(0);
|
fiu_init(0);
|
||||||
|
|
||||||
for (i=0; i < sizeof(fiu_rvs)/sizeof(int); i++) {
|
for (i=0; i < sizeof(fiu_rvs)/sizeof(int); i++) {
|
||||||
|
exec++;
|
||||||
printf("[+] libfiu injection tag: %s\n", fiu_tags[i]);
|
printf("[+] libfiu injection tag: %s\n", fiu_tags[i]);
|
||||||
|
|
||||||
fiu_enable(fiu_tags[i], fiu_rvs[i], NULL, 0);
|
fiu_enable(fiu_tags[i], fiu_rvs[i], NULL, 0);
|
||||||
|
|
||||||
res = fko_new(&ctx);
|
res = fko_new(&ctx);
|
||||||
|
|
||||||
|
if(strncmp(fiu_tags[i], "fko_set_rand_value_lenval",
|
||||||
|
strlen("fko_set_rand_value_lenval")) == 0)
|
||||||
|
res = fko_set_rand_value(ctx, "asdf1234");
|
||||||
|
|
||||||
|
if(strncmp(fiu_tags[i], "fko_set_rand_value_strdup",
|
||||||
|
strlen("fko_set_rand_value_strdup")) == 0)
|
||||||
|
res = fko_set_rand_value(ctx, "asdf1234");
|
||||||
|
|
||||||
|
if(strncmp(fiu_tags[i], "fko_set_username_valuser",
|
||||||
|
strlen("fko_set_username_valuser")) == 0)
|
||||||
|
res = fko_set_username(ctx, "BADCHAR=");
|
||||||
|
|
||||||
if (res == FKO_SUCCESS)
|
if (res == FKO_SUCCESS)
|
||||||
|
{
|
||||||
printf("[-] fko_new(): %s\n", fko_errstr(res));
|
printf("[-] fko_new(): %s\n", fko_errstr(res));
|
||||||
|
fail++;
|
||||||
|
es = EXIT_FAILURE;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
printf("[+] fko_new(): %s\n", fko_errstr(res));
|
printf("[+] fko_new(): %s\n", fko_errstr(res));
|
||||||
|
success++;
|
||||||
|
}
|
||||||
fko_destroy(ctx);
|
fko_destroy(ctx);
|
||||||
ctx = NULL;
|
ctx = NULL;
|
||||||
|
|
||||||
fiu_disable(fiu_tags[i]);
|
fiu_disable(fiu_tags[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
printf("fiu_fault_injection() passed/failed/executed: %d/%d/%d\n",
|
||||||
|
success, fail, exec);
|
||||||
|
return es;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -460,8 +460,9 @@ test_loop(int new_ctx_flag, int destroy_ctx_flag)
|
|||||||
ctx_update(&ctx, new_ctx_flag, destroy_ctx_flag, DO_PRINT);
|
ctx_update(&ctx, new_ctx_flag, destroy_ctx_flag, DO_PRINT);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* NULL tests */
|
/* (mostly) NULL tests */
|
||||||
fko_set_rand_value(ctx, NULL);
|
fko_set_rand_value(ctx, NULL);
|
||||||
|
fko_set_rand_value(ctx, "asdf1234");
|
||||||
fko_set_rand_value(ctx, NULL);
|
fko_set_rand_value(ctx, NULL);
|
||||||
fko_set_username(ctx, NULL);
|
fko_set_username(ctx, NULL);
|
||||||
fko_set_username(ctx, NULL);
|
fko_set_username(ctx, NULL);
|
||||||
|
|||||||
@ -1568,6 +1568,26 @@ sub fault_injection_tag() {
|
|||||||
my $fw_rule_created = 0;
|
my $fw_rule_created = 0;
|
||||||
my $fw_rule_removed = 0;
|
my $fw_rule_removed = 0;
|
||||||
|
|
||||||
|
my $tag_name = '';
|
||||||
|
if ($test_hr->{'cmdline'}) {
|
||||||
|
if ($test_hr->{'cmdline'} =~ /fault\-injection\-tag\s(S+)/) {
|
||||||
|
$tag_name = $1;
|
||||||
|
}
|
||||||
|
} elsif ($test_hr->{'fwknopd_cmdline'}) {
|
||||||
|
if ($test_hr->{'fwknopd_cmdline'} =~ /fault\-injection\-tag\s(S+)/) {
|
||||||
|
$tag_name = $1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($tag_name) {
|
||||||
|
unless ($test_hr->{'detail'} =~ /\s$tag_name/) {
|
||||||
|
&write_test_file(
|
||||||
|
"[-] tag_name '$tag_name' not in test message.\n",
|
||||||
|
$curr_test_file);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($test_hr->{'pkt'}
|
if ($test_hr->{'pkt'}
|
||||||
or ($test_hr->{'cmdline'} and $test_hr->{'fwknopd_cmdline'})) {
|
or ($test_hr->{'cmdline'} and $test_hr->{'fwknopd_cmdline'})) {
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user