tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

fuzz_socks.c (931B)


      1 /* Copyright (c) 2016-2021, The Tor Project, Inc. */
      2 /* See LICENSE for licensing information */
      3 
      4 #include "orconfig.h"
      5 
      6 #define BUFFERS_PRIVATE
      7 #include "core/or/or.h"
      8 
      9 #include "lib/buf/buffers.h"
     10 #include "lib/err/backtrace.h"
     11 #include "lib/log/log.h"
     12 #include "core/proto/proto_socks.h"
     13 #include "feature/client/addressmap.h"
     14 
     15 #include "test/fuzz/fuzzing.h"
     16 
     17 int
     18 fuzz_init(void)
     19 {
     20  addressmap_init();
     21  return 0;
     22 }
     23 
     24 int
     25 fuzz_cleanup(void)
     26 {
     27  addressmap_free_all();
     28  return 0;
     29 }
     30 
     31 int
     32 fuzz_main(const uint8_t *stdin_buf, size_t data_size)
     33 {
     34  buf_t *buffer = buf_new_with_data((char*)stdin_buf, data_size);
     35  if (!buffer) {
     36    tor_assert(data_size==0);
     37    buffer = buf_new();
     38  }
     39 
     40  socks_request_t *request = socks_request_new();
     41 
     42  int r = fetch_from_buf_socks(buffer, request, 0, 0);
     43  log_info(LD_GENERAL, "Socks request status: %d", r);
     44 
     45  /* Reset. */
     46  buf_free(buffer);
     47  socks_request_free(request);
     48 
     49  return 0;
     50 }