OpenVAS Scanner
7.0.1~git
|
#include "exec.h"
#include "../misc/plugutils.h"
#include "nasl.h"
#include "nasl_debug.h"
#include "nasl_func.h"
#include "nasl_global_ctxt.h"
#include "nasl_init.h"
#include "nasl_lex_ctxt.h"
#include "nasl_tree.h"
#include "nasl_var.h"
#include <glib.h>
#include <glib/gstdio.h>
#include <gvm/base/logging.h>
#include <gvm/base/prefs.h>
#include <gvm/util/nvticache.h>
#include <regex.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
Go to the source code of this file.
Macros | |
#define | _GNU_SOURCE |
#define | G_LOG_DOMAIN "lib nasl" |
GLib logging domain. More... | |
Functions | |
int | naslparse (naslctxt *) |
static int | cell2bool (lex_ctxt *lexic, tree_cell *c) |
static long int | cell2int3 (lex_ctxt *lexic, tree_cell *c, int warn, named_nasl_var *v) |
static long int | cell2int (lex_ctxt *lexic, tree_cell *c) |
static long int | cell2intW (lex_ctxt *lexic, tree_cell *c) |
static tree_cell * | int2cell (long int x) |
static tree_cell * | bool2cell (long int x) |
static char * | cell2str (lex_ctxt *lexic, tree_cell *c) |
tree_cell * | cell2atom (lex_ctxt *lexic, tree_cell *c1) |
long int | cell_cmp (lex_ctxt *lexic, tree_cell *c1, tree_cell *c2) |
static void | nasl_dump_expr (FILE *fp, const tree_cell *c) |
static void | nasl_short_dump (FILE *fp, const tree_cell *c) |
static long int | expo (long int x, long int y) |
tree_cell * | nasl_exec (lex_ctxt *lexic, tree_cell *st) |
Execute a parse tree. More... | |
tree_cell * | nasl_lint (lex_ctxt *, tree_cell *) |
Search for errors in a nasl script. More... | |
int | exec_nasl_script (struct script_infos *script_infos, int mode) |
Execute a NASL script. More... | |
Variables | |
FILE * | nasl_trace_fp = NULL |
lex_ctxt * | truc = NULL |
|
static |
Definition at line 155 of file exec.c.
References int2cell().
Referenced by nasl_exec().
Definition at line 205 of file exec.c.
References cell2atom(), CONST_DATA, CONST_INT, CONST_STR, deref_cell(), DYN_ARRAY, FAKE_CELL, nasl_exec(), REF_ARRAY, ref_cell(), and TC::type.
Referenced by cell2atom(), cell_cmp(), nasl_exec(), nasl_func_call(), and nasl_return().
Definition at line 55 of file exec.c.
References CONST_DATA, CONST_INT, CONST_STR, deref_cell(), DYN_ARRAY, FAKE_CELL, TC::i_val, nasl_exec(), REF_ARRAY, TC::size, TC::type, and TC::x.
Referenced by nasl_exec().
Definition at line 135 of file exec.c.
References cell2int3().
Referenced by cell_cmp(), and nasl_exec().
|
static |
Definition at line 87 of file exec.c.
References CONST_DATA, CONST_INT, CONST_STR, deref_cell(), FAKE_CELL, TC::i_val, nasl_exec(), nasl_perror(), TC::ref_val, REF_VAR, TC::str_val, TC::type, st_n_nasl_var::var_name, and TC::x.
Referenced by cell2int(), and cell2intW().
Definition at line 141 of file exec.c.
References cell2int3().
Referenced by nasl_exec().
Definition at line 161 of file exec.c.
References array2str(), CONST_DATA, CONST_INT, CONST_STR, deref_cell(), DYN_ARRAY, FAKE_CELL, TC::i_val, nasl_exec(), REF_ARRAY, TC::ref_val, TC::size, TC::str_val, TC::type, and TC::x.
Referenced by cell_cmp(), and nasl_exec().
Definition at line 229 of file exec.c.
References cell2atom(), cell2int(), cell2str(), cell_type(), CONST_DATA, CONST_INT, CONST_STR, deref_cell(), DYN_ARRAY, FAKE_CELL, nasl_perror(), nasl_type_name(), REF_ARRAY, and TC::size.
Referenced by nasl_exec(), and var_cmp().
int exec_nasl_script | ( | struct script_infos * | script_infos, |
int | mode | ||
) |
Execute a NASL script.
"mode" is a bit field: bit #0 (1) is "description" Bit #1 (2) is "parse only"
script_infos | The plugin script_infos. #param mode Flags for different execution modes (Description, parse-only, always-signed, command-line, lint) |
Definition at line 1624 of file exec.c.
References add_named_var_to_ctxt(), naslctxt::always_signed, CONST_DATA, CONST_INT, deref_cell(), free_lex_ctxt(), get_func_ref_by_name(), TC::i_val, init_empty_lex_ctxt(), init_nasl_ctx(), naslctxt::kb, naslctxt::line_nb, script_infos::name, name, NASL_ALWAYS_SIGNED, nasl_clean_ctx(), NASL_COMMAND_LINE, nasl_exec(), NASL_EXEC_DESCR, NASL_EXEC_PARSE_ONLY, nasl_func_call(), NASL_LINT, nasl_lint(), nasl_set_filename(), nasl_set_plugin_filename(), naslparse(), struct_lex_ctxt::oid, script_infos::oid, oid, plug_get_kb(), struct_lex_ctxt::recv_timeout, struct_lex_ctxt::script_infos, TC::size, TC::str_val, naslctxt::tree, truc, TC::type, and TC::x.
Referenced by main(), nasl_plugin_add(), nasl_thread(), parse_script_infos(), and process_file().
|
static |
Definition at line 756 of file exec.c.
Referenced by nasl_exec().
|
static |
Definition at line 147 of file exec.c.
References alloc_expr_cell(), CONST_INT, TC::i_val, and TC::x.
Referenced by bool2cell(), and nasl_exec().
|
static |
Definition at line 373 of file exec.c.
References COMP_EQ, COMP_GE, COMP_GT, COMP_LE, COMP_LT, COMP_MATCH, COMP_NOMATCH, COMP_RE_MATCH, COMP_RE_NOMATCH, CONST_DATA, CONST_INT, CONST_STR, EXPR_AND, EXPR_BIT_AND, EXPR_BIT_NOT, EXPR_BIT_OR, EXPR_BIT_XOR, EXPR_DECR, EXPR_DIV, EXPR_EXPO, EXPR_INCR, EXPR_L_SHIFT, EXPR_MINUS, EXPR_MODULO, EXPR_MULT, EXPR_NOT, EXPR_OR, EXPR_PLUS, EXPR_R_SHIFT, EXPR_R_USHIFT, EXPR_U_MINUS, FAKE_CELL, TC::i_val, TC::link, NODE_AFF, NODE_ARRAY_EL, NODE_DIV_EQ, NODE_FUN_CALL, NODE_L_SHIFT_EQ, NODE_MINUS_EQ, NODE_MODULO_EQ, NODE_MULT_EQ, NODE_PLUS_EQ, NODE_R_SHIFT_EQ, NODE_R_USHIFT_EQ, NODE_VAR, TC::str_val, TC::type, and TC::x.
Referenced by nasl_short_dump().
Execute a parse tree.
Definition at line 781 of file exec.c.
References nasl_iterator::a, alloc_expr_cell(), alloc_typed_cell(), bool2cell(), struct_lex_ctxt::break_flag, cell2atom(), cell2bool(), cell2int(), cell2intW(), cell2str(), cell_cmp(), COMP_EQ, COMP_GE, COMP_GT, COMP_LE, COMP_LT, COMP_MATCH, COMP_NE, COMP_NOMATCH, COMP_RE_MATCH, COMP_RE_NOMATCH, CONST_DATA, CONST_INT, CONST_STR, struct_lex_ctxt::cont_flag, decl_global_variables(), decl_local_variables(), decl_nasl_func(), deref_cell(), DYN_ARRAY, expo(), EXPR_AND, EXPR_BIT_AND, EXPR_BIT_NOT, EXPR_BIT_OR, EXPR_BIT_XOR, EXPR_DECR, EXPR_DIV, EXPR_EXPO, EXPR_INCR, EXPR_L_SHIFT, EXPR_MINUS, EXPR_MODULO, EXPR_MULT, EXPR_NOT, EXPR_OR, EXPR_PLUS, EXPR_R_SHIFT, EXPR_R_USHIFT, EXPR_U_MINUS, FAKE_CELL, free_array(), get_array_elem(), get_func_ref_by_name(), get_variable_by_name(), int2cell(), struct_lex_ctxt::line_nb, TC::line_nb, TC::link, nasl_affect(), nasl_array_iterator(), nasl_exec(), nasl_func_call(), nasl_incr_variable(), nasl_iterate_array(), nasl_perror(), nasl_read_var_ref(), nasl_return(), nasl_short_dump(), nasl_trace_fp, NODE_AFF, NODE_ARG, NODE_ARRAY_EL, NODE_BREAK, NODE_CONTINUE, NODE_DECL, NODE_DIV_EQ, NODE_EMPTY, NODE_FOR, NODE_FOREACH, NODE_FUN_CALL, NODE_FUN_DEF, NODE_GLOBAL, NODE_IF_ELSE, NODE_INSTR_L, NODE_L_SHIFT_EQ, NODE_LOCAL, NODE_MINUS_EQ, NODE_MODULO_EQ, NODE_MULT_EQ, NODE_PLUS_EQ, NODE_R_SHIFT_EQ, NODE_R_USHIFT_EQ, NODE_REPEAT_UNTIL, NODE_REPEATED, NODE_RETURN, NODE_VAR, NODE_WHILE, REF_ARRAY, ref_cell(), TC::ref_val, REF_VAR, struct_lex_ctxt::ret_val, TC::size, TC::str_val, TC::type, val, and TC::x.
Referenced by cell2atom(), cell2bool(), cell2int3(), cell2str(), exec_nasl_script(), nasl_exec(), and nasl_func_call().
Search for errors in a nasl script.
[in] | lexic | nasl context. |
[in] | st | structure tree of a nasl script. |
Definition at line 497 of file lint.c.
References add_predef_varname(), check_called_files(), FAKE_CELL, free_lex_ctxt(), free_list_func(), init_empty_lex_ctxt(), make_call_func_list(), nasl_get_filename(), nasl_lint_call(), nasl_lint_def(), nasl_lint_defvar(), nasl_name, struct_lex_ctxt::oid, print_uncall_files(), struct_lex_ctxt::script_infos, TC::str_val, and TC::x.
Referenced by exec_nasl_script().
|
static |
Definition at line 662 of file exec.c.
References FAKE_CELL, TC::line_nb, TC::link, nasl_dump_expr(), NODE_AFF, NODE_BREAK, NODE_CONTINUE, NODE_DIV_EQ, NODE_FOR, NODE_FOREACH, NODE_FUN_CALL, NODE_GLOBAL, NODE_IF_ELSE, NODE_L_SHIFT_EQ, NODE_LOCAL, NODE_MINUS_EQ, NODE_MODULO_EQ, NODE_MULT_EQ, NODE_PLUS_EQ, NODE_R_SHIFT_EQ, NODE_R_USHIFT_EQ, NODE_REPEAT_UNTIL, NODE_REPEATED, NODE_RETURN, NODE_WHILE, TC::str_val, TC::type, and TC::x.
Referenced by nasl_exec().
int naslparse | ( | naslctxt * | ) |
FILE* nasl_trace_fp = NULL |
Definition at line 368 of file exec.c.
Referenced by affect_to_anon_var(), main(), nasl_exec(), nasl_func_call(), nasl_trace(), and nasl_trace_enabled().
lex_ctxt* truc = NULL |
Definition at line 370 of file exec.c.
Referenced by exec_nasl_script().