]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
bugfix: create_onion now works with routelen>2
authorRoger Dingledine <arma@torproject.org>
Sat, 20 Jul 2002 01:59:28 +0000 (01:59 +0000)
committerRoger Dingledine <arma@torproject.org>
Sat, 20 Jul 2002 01:59:28 +0000 (01:59 +0000)
svn:r66

src/or/onion.c

index 52ef72f407c18853b0dea14e25e652c4f3405955..34f1db36a17e1e543414f1dae46a1b0527eb7259 100644 (file)
@@ -159,8 +159,8 @@ unsigned char *create_onion(routerinfo_t **rarray, size_t rarray_len, unsigned i
   unsigned char *bufp;
   routerinfo_t *router;
 
-  if ( (rarray) && (route) && (lenp) ) /* valid parameters */
-  {
+  assert(rarray && route && lenp && routelen);
+
     /* calculate the size of the onion */
     *lenp = routelen * 28 + 100; /* 28 bytes per layer + 100 bytes padding for the innermost layer */
     log(LOG_DEBUG,"create_onion() : Size of the onion is %u.",*lenp);
@@ -337,13 +337,10 @@ unsigned char *create_onion(routerinfo_t **rarray, size_t rarray_len, unsigned i
       log(LOG_DEBUG,"create_onion() : Encrypted layer.");
       
       /* calculate pointer to next layer */
-      layer = (onion_layer_t *)bufp + (routelen-i-2)*sizeof(onion_layer_t);
+      layer = (onion_layer_t *)(bufp + (routelen-i-2)*sizeof(onion_layer_t));
     }
 
     return bufp;
-  } /* valid parameters */
-  else
-    return NULL;
 }
 
 /* encrypts 128 bytes of the onion with the specified public key, the rest with