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
ZerXes
Tor
Commits
5d31f715
Commit
5d31f715
authored
Sep 28, 2003
by
Roger Dingledine
Browse files
fix two new segfaults
svn:r506
parent
c4c66e2c
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/or/directory.c
View file @
5d31f715
...
...
@@ -167,7 +167,7 @@ int connection_dir_process_inbuf(connection_t *conn) {
static
int
directory_handle_command
(
connection_t
*
conn
)
{
char
headers
[
1024
];
char
body
[
50000
];
/* XXX */
size_t
dl
;
size_t
dl
en
;
const
char
*
cp
;
assert
(
conn
&&
conn
->
type
==
CONN_TYPE_DIR
);
...
...
@@ -187,16 +187,16 @@ static int directory_handle_command(connection_t *conn) {
if
(
!
strncasecmp
(
headers
,
"GET"
,
3
))
{
/* XXX should check url and http version */
dl
=
dirserv_get_directory
(
&
cp
);
dl
en
=
dirserv_get_directory
(
&
cp
);
if
(
dl
==
0
)
{
if
(
dl
en
==
0
)
{
log_fn
(
LOG_WARNING
,
"My directory is empty. Closing."
);
return
-
1
;
}
log_fn
(
LOG_DEBUG
,
"Dumping directory to client."
);
if
((
connection_write_to_buf
(
answerstring
,
strlen
(
answerstring
),
conn
)
<
0
)
||
(
connection_write_to_buf
(
cp
,
dl
,
conn
)
<
0
))
{
(
connection_write_to_buf
(
cp
,
dl
en
,
conn
)
<
0
))
{
log_fn
(
LOG_WARNING
,
"Failed to write answerstring+directory to outbuf."
);
return
-
1
;
}
...
...
src/or/dirserv.c
View file @
5d31f715
...
...
@@ -373,7 +373,7 @@ size_t dirserv_get_directory(const char **directory)
/* Now read the directory we just made in order to update our own
* router lists. This does more signature checking than is strictly
* necessary, but safe is better than sorry. */
new_directory
=
strdup
(
*
directory
);
new_directory
=
strdup
(
the_
directory
);
if
(
router_get_dir_from_string
(
new_directory
,
get_identity_key
()))
{
log_fn
(
LOG_ERR
,
"We just generated a directory we can't parse. Dying."
);
exit
(
0
);
...
...
src/or/main.c
View file @
5d31f715
...
...
@@ -836,16 +836,14 @@ list_running_servers(char **nicknames_out)
length
+=
strlen
(
nickname_lst
[
i
]);
}
*
nicknames_out
=
tor_malloc
(
length
);
log_fn
(
LOG_DEBUG
,
"total length %d malloced."
,
length
);
cp
=
*
nicknames_out
;
memset
(
cp
,
0
,
length
);
for
(
i
=
0
;
i
<
n
;
++
i
)
{
if
(
i
)
strcat
(
cp
,
" "
);
strcat
(
cp
,
nickname_lst
[
i
]);
while
(
*
cp
)
++
cp
;
log_fn
(
LOG_DEBUG
,
"end of loop %d, now %d written (nick %s)"
,
i
,
1
+
(
int
)(
cp
-*
nicknames_out
),
nickname_lst
[
i
]);
}
return
0
;
}
...
...
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