Переглянути джерело

stop a potential overflow (pointed out by ilja)

svn:r3681
Roger Dingledine 20 роки тому
батько
коміт
8054f82992
1 змінених файлів з 3 додано та 1 видалено
  1. 3 1
      src/or/relay.c

+ 3 - 1
src/or/relay.c

@@ -436,8 +436,10 @@ int connection_edge_send_command(connection_t *fromconn, circuit_t *circ,
     rh.stream_id = fromconn->stream_id; /* else it's 0 */
   rh.length = payload_len;
   relay_header_pack(cell.payload, &rh);
-  if (payload_len)
+  if (payload_len) {
+    tor_assert(payload_len <= RELAY_PAYLOAD_SIZE);
     memcpy(cell.payload+RELAY_HEADER_SIZE, payload, payload_len);
+  }
 
   log_fn(LOG_DEBUG,"delivering %d cell %s.", relay_command,
          cell_direction == CELL_DIRECTION_OUT ? "forward" : "backward");