[or-cvs] Add directory format fix to debian"s 0.1.1.8-alpha-1
Peter Palfrader
weasel at seul.org
Sat Oct 8 21:20:03 UTC 2005
Update of /home/or/cvsroot/tor/debian/patches
In directory moria:/tmp/cvs-serv30037/patches
Modified Files:
00list
Added Files:
08_add_newlines_between_serverdescriptors.dpatch
Log Message:
Add directory format fix to debian's 0.1.1.8-alpha-1
Index: 00list
===================================================================
RCS file: /home/or/cvsroot/tor/debian/patches/00list,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- 00list 24 Nov 2004 08:42:37 -0000 1.9
+++ 00list 8 Oct 2005 21:20:01 -0000 1.10
@@ -2,3 +2,4 @@
03_tor_manpage_in_section_8.dpatch
06_add_compile_time_defaults.dpatch
07_log_to_file_by_default.dpatch
+08_add_newlines_between_serverdescriptors
--- NEW FILE: 08_add_newlines_between_serverdescriptors.dpatch ---
#! /bin/sh -e
## 07_log_to_file_by_default.dpatch by <weasel at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.
if [ $# -lt 1 ]; then
echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
exit 1
fi
[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
patch_opts="${patch_opts:--f --no-backup-if-mismatch} ${2:+-d $2}"
case "$1" in
-patch) patch -p1 ${patch_opts} < $0;;
-unpatch) patch -R -p1 ${patch_opts} < $0;;
*)
echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
exit 1;;
esac
exit 0
@DPATCH@
diff -u -d -r1.246 -r1.247
--- tor-0.1.1.9/src/or/dirserv.c 6 Oct 2005 04:33:40 -0000 1.246
+++ /tmp/dpep.YwfNhI/tor-0.1.1.9/src/or/dirserv.c 8 Oct 2005 06:02:41 -0000 1.247
@@ -731,6 +731,7 @@
dirserv_dump_directory_to_string(char **dir_out,
crypto_pk_env_t *private_key)
{
+ char *cp;
char *router_status;
char *identity_pkey; /* Identity key, DER64-encoded. */
char *recommended_versions;
@@ -765,7 +766,7 @@
buf_len = 2048+strlen(recommended_versions)+
strlen(router_status);
SMARTLIST_FOREACH(descriptor_list, routerinfo_t *, ri,
- buf_len += ri->signed_descriptor_len);
+ buf_len += ri->signed_descriptor_len+1);
buf = tor_malloc(buf_len);
/* We'll be comparing against buf_len throughout the rest of the
function, though strictly speaking we shouldn't be able to exceed
@@ -785,9 +786,17 @@
tor_free(router_status);
tor_free(identity_pkey);
+ cp = buf + strlen(buf);
SMARTLIST_FOREACH(descriptor_list, routerinfo_t *, ri,
- if (strlcat(buf, ri->signed_descriptor, buf_len) >= buf_len)
- goto truncated);
+ {
+ if (cp+ri->signed_descriptor_len+1 >= buf+buf_len)
+ goto truncated;
+ memcpy(cp, ri->signed_descriptor, ri->signed_descriptor_len);
+ cp += ri->signed_descriptor_len;
+ *cp++ = '\n'; /* add an extra newline in case somebody was depending on
+ * it. */
+ });
+ *cp = '\0';
/* These multiple strlcat calls are inefficient, but dwarfed by the RSA
signature.
More information about the tor-commits
mailing list