[tor-commits] [tor/master] Move tor_escape_str_for_pt_args into or/transports.c

nickm at torproject.org nickm at torproject.org
Thu Jun 28 19:21:00 UTC 2018


commit 8c6ff9fec2ed8b1eed6a4c35370f62f1bf24a158
Author: Nick Mathewson <nickm at torproject.org>
Date:   Thu Jun 28 11:49:27 2018 -0400

    Move tor_escape_str_for_pt_args into or/transports.c
---
 src/common/util.c    | 37 -------------------------------------
 src/common/util.h    |  2 --
 src/or/transports.c  | 37 +++++++++++++++++++++++++++++++++++++
 src/or/transports.h  |  3 +++
 src/test/test_util.c |  1 +
 5 files changed, 41 insertions(+), 39 deletions(-)

diff --git a/src/common/util.c b/src/common/util.c
index 5a104d39f..6a557c956 100644
--- a/src/common/util.c
+++ b/src/common/util.c
@@ -225,43 +225,6 @@ add_laplace_noise(int64_t signal_, double random_, double delta_f,
  * String manipulation
  * ===== */
 
-/** Return a newly allocated string equal to <b>string</b>, except that every
- * character in <b>chars_to_escape</b> is preceded by a backslash. */
-char *
-tor_escape_str_for_pt_args(const char *string, const char *chars_to_escape)
-{
-  char *new_string = NULL;
-  char *new_cp = NULL;
-  size_t length, new_length;
-
-  tor_assert(string);
-
-  length = strlen(string);
-
-  if (!length) /* If we were given the empty string, return the same. */
-    return tor_strdup("");
-  /* (new_length > SIZE_MAX) => ((length * 2) + 1 > SIZE_MAX) =>
-     (length*2 > SIZE_MAX - 1) => (length > (SIZE_MAX - 1)/2) */
-  if (length > (SIZE_MAX - 1)/2) /* check for overflow */
-    return NULL;
-
-  /* this should be enough even if all characters must be escaped */
-  new_length = (length * 2) + 1;
-
-  new_string = new_cp = tor_malloc(new_length);
-
-  while (*string) {
-    if (strchr(chars_to_escape, *string))
-      *new_cp++ = '\\';
-
-    *new_cp++ = *string++;
-  }
-
-  *new_cp = '\0'; /* NUL-terminate the new string */
-
-  return new_string;
-}
-
 /* =====
  * Time
  * ===== */
diff --git a/src/common/util.h b/src/common/util.h
index f473d6f59..8007aa05c 100644
--- a/src/common/util.h
+++ b/src/common/util.h
@@ -72,8 +72,6 @@ int64_t clamp_double_to_int64(double number);
 
 /* String manipulation */
 
-char *tor_escape_str_for_pt_args(const char *string,
-                                 const char *chars_to_escape);
 
 /* Time helpers */
 long tv_udiff(const struct timeval *start, const struct timeval *end);
diff --git a/src/or/transports.c b/src/or/transports.c
index 6cc7f844a..34161fd16 100644
--- a/src/or/transports.c
+++ b/src/or/transports.c
@@ -1699,3 +1699,40 @@ pt_free_all(void)
     managed_proxy_list=NULL;
   }
 }
+
+/** Return a newly allocated string equal to <b>string</b>, except that every
+ * character in <b>chars_to_escape</b> is preceded by a backslash. */
+char *
+tor_escape_str_for_pt_args(const char *string, const char *chars_to_escape)
+{
+  char *new_string = NULL;
+  char *new_cp = NULL;
+  size_t length, new_length;
+
+  tor_assert(string);
+
+  length = strlen(string);
+
+  if (!length) /* If we were given the empty string, return the same. */
+    return tor_strdup("");
+  /* (new_length > SIZE_MAX) => ((length * 2) + 1 > SIZE_MAX) =>
+     (length*2 > SIZE_MAX - 1) => (length > (SIZE_MAX - 1)/2) */
+  if (length > (SIZE_MAX - 1)/2) /* check for overflow */
+    return NULL;
+
+  /* this should be enough even if all characters must be escaped */
+  new_length = (length * 2) + 1;
+
+  new_string = new_cp = tor_malloc(new_length);
+
+  while (*string) {
+    if (strchr(chars_to_escape, *string))
+      *new_cp++ = '\\';
+
+    *new_cp++ = *string++;
+  }
+
+  *new_cp = '\0'; /* NUL-terminate the new string */
+
+  return new_string;
+}
diff --git a/src/or/transports.h b/src/or/transports.h
index 0bd96e095..d304dcd48 100644
--- a/src/or/transports.h
+++ b/src/or/transports.h
@@ -66,6 +66,9 @@ char *pt_stringify_socks_args(const smartlist_t *socks_args);
 char *pt_get_socks_args_for_proxy_addrport(const tor_addr_t *addr,
                                             uint16_t port);
 
+char *tor_escape_str_for_pt_args(const char *string,
+                                 const char *chars_to_escape);
+
 #ifdef PT_PRIVATE
 /** State of the managed proxy configuration protocol. */
 enum pt_proto_state {
diff --git a/src/test/test_util.c b/src/test/test_util.c
index 4d171d5d0..a6fb0ce84 100644
--- a/src/test/test_util.c
+++ b/src/test/test_util.c
@@ -15,6 +15,7 @@
 #include "common/buffers.h"
 #include "or/config.h"
 #include "or/control.h"
+#include "or/transports.h"
 #include "lib/crypt_ops/crypto_rand.h"
 #include "test/test.h"
 #include "lib/memarea/memarea.h"





More information about the tor-commits mailing list