OpenVAS Scanner
7.0.0~git
|
Go to the documentation of this file.
46 for (p = s; *p !=
'\0'; p++)
47 h = (h << 3) + (
unsigned char) *p;
65 nasl_perror (ctxt,
"Negative integer index %d are not supported yet!\n",
72 if (v != NULL || !create)
125 for (c = ctxt; c != NULL; c = c->
up_ctxt)
159 nasl_perror (ctxt,
"Negative index %d is invalid for array\n", num);
196 if (strcmp (
name,
"_FCT_ANON_ARGS") == 0)
214 #ifdef ALL_VARIABLES_NAMED
215 if (v->av_name != NULL)
218 snprintf (str,
sizeof (str),
"[%p]", v);
230 if (strcmp (
name,
"_FCT_ANON_ARGS") == 0)
251 memset (&idx0,
'\0',
sizeof (idx0));
268 strcmp (
name,
"_FCT_ANON_ARGS"));
274 return var2cell (nv != NULL ? &nv->
u : NULL);
278 "get_array_elem: unhandled index type 0x%x for "
286 nasl_perror (ctxt,
"get_array_elem: variable %s is an integer\n",
name);
298 "get_array_elem: requesting character after end "
299 "of string %s (%d >= %d)\n",
312 "get_array_elem: Negative index (%d) passed to "
329 "get_array_elem: Cannot use a non integer index"
330 " (type 0x%x) in string. Variable: %s\n",
337 nasl_perror (ctxt,
"Severe bug: unknown variable type 0x%x %s\n",
362 for (i = 0; i < a->
max_idx; i++)
516 if (a1 == NULL || a2 == NULL)
518 nasl_perror (NULL,
"Internal inconsistency - null array\n");
528 for (i = 0; i < a2->
max_idx; i++)
531 if (copy_named && a2->
hash_elt != NULL)
622 nasl_perror (NULL,
"Cannot affect rvalue 0x%x to variable\n",
635 memset (v1, 0,
sizeof (*v1));
655 p = g_malloc0 (rval->
size + 1);
718 nasl_perror (NULL,
"nasl_effect: invalid lvalue\n");
724 nasl_perror (NULL,
"nasl_affect: cannot affect to non variable %s\n",
777 for (t = vars; t != NULL; t = t->
link[0])
779 nasl_perror (lexic,
"decl_local_variables: null name!\n");
807 nasl_perror (lexic,
"Cannot add existing variable %d\n", num);
855 "nasl_read_var_ref: cannot read NULL or FAKE cell\n");
861 "nasl_read_var_ref: argument (type=%d) is not REF_VAR %s\n",
888 nasl_perror (lexic,
"nasl_read_var_ref: Bad string length fixed\n");
921 nasl_perror (lexic,
"nasl_read_var_ref: unhandled variable type %d\n",
924 nasl_trace (lexic,
"NASL> %s -> ???? (Var type %d)\n",
936 int old_val = 0, new_val;
942 lexic,
"nasl_incr_variable: argument (type=%d) is not REF_VAR %s\n",
965 "nasl_incr_variable: variable %s has bad type %d %s\n",
969 new_val = old_val +
val;
976 retc->
x.
i_val = pre ? new_val : old_val;
1014 str = g_string_new (
"[ ");
1016 for (i = 0; i < a->
max_idx; i++)
1020 g_string_append (str,
", ");
1025 g_string_append_printf (str,
"%d: %ld", i, u->
v.
v_int);
1030 g_string_append_printf (str,
"%d: '%s'", i, u->
v.
v_str.
s_val);
1032 g_string_append_printf (str,
"%d: '%s'...", i,
1036 g_string_append_printf (str,
"%d: ????", i);
1048 g_string_append (str,
", ");
1053 g_string_append_printf (str,
"%s: %ld", v->
var_name,
1059 g_string_append_printf (str,
"%s: '%s'", v->
var_name,
1062 g_string_append_printf (str,
"%s: '%s'...", v->
var_name,
1066 g_string_append_printf (str,
"%s: ????", v->
var_name);
1071 g_string_append (str,
" ]");
1072 return g_string_free (str, FALSE);
1206 nasl_perror (ctxt,
"nasl_array_iterator: unhandled type %d (0x%x)\n",
1218 if (it == NULL || it->
a == NULL)
1239 while (it->
v == NULL)
1248 while (it->
v == NULL);
1261 NULL,
"add_var_to_list: negative index are not (yet) supported\n");
1315 for (i = a->
max_idx - 1; i >= 0; i--)
1344 for (n = 0, c = el; c != NULL; c = c->
link[1])
1356 for (n = 0, c = el; c != NULL; c = c->
link[1])
1383 "make_array_from_list: unhandled cell type %s at "
static const char * get_var_name(anon_nasl_var *v)
const char * nasl_type_name(int t)
void free_array(nasl_array *a)
static anon_nasl_var * dup_anon_var(const anon_nasl_var *v)
void nasl_trace(lex_ctxt *lexic, char *msg,...)
Prints debug message in printf fashion to nasl_trace_fp if it exists.
tree_cell * nasl_incr_variable(lex_ctxt *lexic, tree_cell *tc, int pre, int val)
static named_nasl_var * create_named_var(const char *name, tree_cell *val)
static anon_nasl_var * get_var_ref_by_num(lex_ctxt *ctxt, int num)
tree_cell * nasl_iterate_array(nasl_iterator *it)
static void copy_array(nasl_array *, const nasl_array *, int)
const char * var2str(anon_nasl_var *v)
char * get_str_var_by_num(lex_ctxt *lexic, int num)
tree_cell * decl_global_variables(lex_ctxt *lexic, tree_cell *vars)
char * array2str(const nasl_array *a)
int get_var_type_by_num(lex_ctxt *lexic, int num)
Returns NASL variable/cell type, VAR2_UNDEF if value is NULL.
struct st_n_nasl_var ** hash_elt
int hash_str2(const char *s, int n)
static anon_nasl_var * create_anon_var(tree_cell *val)
void clear_anon_var(anon_nasl_var *v)
static void free_var_chain(named_nasl_var *)
tree_cell * nasl_read_var_ref(lex_ctxt *lexic, tree_cell *tc)
tree_cell * nasl_affect(tree_cell *lval, tree_cell *rval)
struct struct_lex_ctxt * up_ctxt
int get_var_size_by_num(lex_ctxt *lexic, int num)
static named_nasl_var * get_var_by_name(nasl_array *a, const char *s)
char * get_str_var_by_name(lex_ctxt *lexic, const char *name)
struct st_n_nasl_var * next_var
static tree_cell * affect_to_anon_var(anon_nasl_var *v1, tree_cell *rval)
void nasl_perror(lex_ctxt *lexic, char *msg,...)
static void copy_anon_var(anon_nasl_var *v1, const anon_nasl_var *v2)
int nasl_trace_enabled(void)
Checks if the nasl_trace_fp is set.
int add_var_to_array(nasl_array *a, char *name, const anon_nasl_var *v)
static int get_var_size(const anon_nasl_var *v)
nasl_iterator nasl_array_iterator(void *ctxt, tree_cell *c)
tree_cell * var2cell(anon_nasl_var *v)
long int get_int_var_by_num(lex_ctxt *lexic, int num, int defval)
tree_cell * get_array_elem(lex_ctxt *ctxt, const char *name, tree_cell *idx)
static named_nasl_var * dup_named_var(const named_nasl_var *v)
char * get_line_nb(const tree_cell *c)
tree_cell * alloc_expr_cell(int lnb, int t, tree_cell *l, tree_cell *r)
tree_cell * make_array_from_elems(tree_cell *el)
tree_cell * get_variable_by_name(lex_ctxt *ctxt, const char *name)
tree_cell * decl_local_variables(lex_ctxt *lexic, tree_cell *vars)
static long int var2int(anon_nasl_var *v, int defval)
named_nasl_var * add_named_var_to_ctxt(lex_ctxt *lexic, const char *name, tree_cell *val)
static int hash_str(const char *s)
tree_cell * copy_ref_array(const tree_cell *c1)
int add_var_to_list(nasl_array *a, int i, const anon_nasl_var *v)
union st_a_nasl_var::@4 v
int get_var_size_by_name(lex_ctxt *lexic, const char *name)
int get_var_type_by_name(lex_ctxt *lexic, const char *name)
static named_nasl_var * get_var_ref_by_name(lex_ctxt *ctxt, const char *name, int climb)
This function climbs up in the context list.
static void free_anon_var(anon_nasl_var *)
void deref_cell(tree_cell *c)
tree_cell * alloc_typed_cell(int typ)
anon_nasl_var * add_numbered_var_to_ctxt(lex_ctxt *lexic, int num, tree_cell *val)
long int get_int_var_by_name(lex_ctxt *lexic, const char *name, int defval)
anon_nasl_var * nasl_get_var_by_num(void *ctxt, nasl_array *a, int num, int create)
int array_max_index(nasl_array *a)
struct st_a_nasl_var ** num_elt