Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
The Tor Project
Core
Tor
Commits
43211c3a
Commit
43211c3a
authored
Oct 01, 2018
by
Nick Mathewson
🎨
Browse files
Merge remote-tracking branch 'public/bug27893'
parents
58299b29
8812f562
Changes
6
Hide whitespace changes
Inline
Side-by-side
changes/bug27893
0 → 100644
View file @
43211c3a
o Minor bugfixes (memory leaks):
- Fix a small memory leak when calling Tor with --dump-config.
Fixes bug 27893; bugfix on 0.3.2.1-alpha.
src/app/config/config.c
View file @
43211c3a
...
...
@@ -827,6 +827,7 @@ static void config_maybe_load_geoip_files_(const or_options_t *options,
static
int
options_validate_cb
(
void
*
old_options
,
void
*
options
,
void
*
default_options
,
int
from_setconf
,
char
**
msg
);
static
void
options_free_cb
(
void
*
options
);
static
void
cleanup_protocol_warning_severity_level
(
void
);
static
void
set_protocol_warning_severity_level
(
int
warning_severity
);
...
...
@@ -842,6 +843,7 @@ STATIC config_format_t options_format = {
option_deprecation_notes_
,
option_vars_
,
options_validate_cb
,
options_free_cb
,
NULL
};
...
...
@@ -3152,6 +3154,13 @@ options_validate_cb(void *old_options, void *options, void *default_options,
return
rv
;
}
/** Callback to free an or_options_t */
static
void
options_free_cb
(
void
*
options
)
{
or_options_free_
(
options
);
}
#define REJECT(arg) \
STMT_BEGIN *msg = tor_strdup(arg); return -1; STMT_END
#if defined(__GNUC__) && __GNUC__ <= 3
...
...
src/app/config/confparse.c
View file @
43211c3a
...
...
@@ -1009,8 +1009,9 @@ config_dump(const config_format_t *fmt, const void *default_options,
result
=
smartlist_join_strings
(
elements
,
""
,
0
,
NULL
);
SMARTLIST_FOREACH
(
elements
,
char
*
,
cp
,
tor_free
(
cp
));
smartlist_free
(
elements
);
if
(
defaults_tmp
)
config_free
(
fmt
,
defaults_tmp
);
if
(
defaults_tmp
)
{
fmt
->
free_fn
(
defaults_tmp
);
}
return
result
;
}
...
...
src/app/config/confparse.h
View file @
43211c3a
...
...
@@ -155,6 +155,9 @@ typedef struct config_var_t {
* of arguments. */
typedef
int
(
*
validate_fn_t
)(
void
*
,
void
*
,
void
*
,
int
,
char
**
);
/** Callback to free a configuration object. */
typedef
void
(
*
free_cfg_fn_t
)(
void
*
);
/** Information on the keys, value types, key-to-struct-member mappings,
* variable descriptions, validation functions, and abbreviations for a
* configuration or storage format. */
...
...
@@ -169,6 +172,7 @@ typedef struct config_format_t {
config_var_t
*
vars
;
/**< List of variables we recognize, their default
* values, and where we stick them in the structure. */
validate_fn_t
validate_fn
;
/**< Function to validate config. */
free_cfg_fn_t
free_fn
;
/**< Function to free the configuration. */
/** If present, extra is a LINELIST variable for unrecognized
* lines. Otherwise, unrecognized lines are an error. */
config_var_t
*
extra
;
...
...
src/app/config/statefile.c
View file @
43211c3a
...
...
@@ -143,6 +143,8 @@ static int or_state_validate_cb(void *old_options, void *options,
void
*
default_options
,
int
from_setconf
,
char
**
msg
);
static
void
or_state_free_cb
(
void
*
state
);
/** Magic value for or_state_t. */
#define OR_STATE_MAGIC 0x57A73f57
...
...
@@ -162,6 +164,7 @@ static const config_format_t state_format = {
NULL
,
state_vars_
,
or_state_validate_cb
,
or_state_free_cb
,
&
state_extra_var
,
};
...
...
@@ -259,6 +262,12 @@ or_state_validate_cb(void *old_state, void *state, void *default_state,
return
or_state_validate
(
state
,
msg
);
}
static
void
or_state_free_cb
(
void
*
state
)
{
or_state_free_
(
state
);
}
/** Return 0 if every setting in <b>state</b> is reasonable, and a
* permissible transition from <b>old_state</b>. Else warn and return -1.
* Should have no side effects, except for normalizing the contents of
...
...
src/feature/dirauth/shared_random_state.c
View file @
43211c3a
...
...
@@ -63,6 +63,7 @@ DUMMY_TYPECHECK_INSTANCE(sr_disk_state_t);
static
int
disk_state_validate_cb
(
void
*
old_state
,
void
*
state
,
void
*
default_state
,
int
from_setconf
,
char
**
msg
);
static
void
disk_state_free_cb
(
void
*
);
/* Array of variables that are saved to disk as a persistent state. */
static
config_var_t
state_vars
[]
=
{
...
...
@@ -96,6 +97,7 @@ static const config_format_t state_format = {
NULL
,
state_vars
,
disk_state_validate_cb
,
disk_state_free_cb
,
&
state_extra_var
,
};
...
...
@@ -342,6 +344,12 @@ disk_state_validate_cb(void *old_state, void *state, void *default_state,
return
0
;
}
static
void
disk_state_free_cb
(
void
*
state
)
{
disk_state_free_
(
state
);
}
/* Parse the Commit line(s) in the disk state and translate them to the
* the memory state. Return 0 on success else -1 on error. */
static
int
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment