• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

uber / tchannel-go
88%
dev: 88%

Build:
Build:
LAST BUILD BRANCH: delayed_frame_alloc
DEFAULT BRANCH: dev
Repo Added 29 Dec 2015 02:57PM UTC
Files 120
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH resilient_frame_parsing
branch: resilient_frame_parsing
CHANGE BRANCH
x
Reset
  • resilient_frame_parsing
  • 1.0.5
  • add-caller-forwarding
  • add_listenip_tests
  • add_onclosed
  • add_tracing
  • add_version_local
  • ajs-atom
  • ajs-atomics
  • ajs-benchbug
  • ajs-cache
  • ajs-caller
  • ajs-clamp-introspection
  • ajs-cleanup
  • ajs-conn-prefixes
  • ajs-conns
  • ajs-copy
  • ajs-err-names
  • ajs-evenmoar
  • ajs-expose-routing-delegate
  • ajs-fixme
  • ajs-flake1
  • ajs-fluent
  • ajs-git
  • ajs-install-test
  • ajs-leaks
  • ajs-lint
  • ajs-metrics
  • ajs-metrics2
  • ajs-metrics3
  • ajs-metrics6
  • ajs-moar
  • ajs-relay
  • ajs-stats-race
  • ajs-structy
  • ajs-sync-refs
  • ajs-test-cleanups
  • ajs-tests
  • ajs-timer-pool
  • ajs-timer-wheel
  • ajs-travis
  • ajs-xpr
  • ajs-zones
  • alun/get-force-map
  • alun/peers-len
  • always_set_assignment
  • alxn/580-SetStrategy-should-rescore
  • aniketpant-err-req-cancelled
  • aniketpant-expire-exchange
  • aniketpant-req-cancel
  • apache-thrift-0.10.0
  • apache-thrift-0.9
  • atomic_race
  • avoid_host
  • bench
  • bench_binaries
  • benchmark_logging
  • bump_version
  • byte_slice_params
  • call_id
  • call_logging
  • call_span
  • cancel_connect
  • cancel_ctx
  • ch_active_conn
  • changelog
  • changelog_gen_script
  • cleanup_examples
  • cleanup_logs
  • clone_ctx
  • close_conn
  • close_err
  • close_fix
  • close_states
  • close_test
  • closefix
  • concurrent_relay_connect
  • conn_change
  • conn_err
  • conn_gc
  • conn_options_refactor
  • conn_transition
  • connect_flake
  • connect_timeout
  • connection_process
  • consistent_init_error
  • consistent_score
  • context-with-headers
  • copy_api
  • coverage_introspection
  • coveralls_flaky
  • created_stacktrace
  • crossdock-in-travis
  • delayed_frame_alloc
  • dev
  • dev-fix-moe
  • dial_timeout
  • dial_timeout_test
  • docker-thrift-gen
  • dscp_tos
  • dup_check
  • eats_logger
  • eats_logger_compatible
  • eats_logger_compatible_rebase
  • eats_logger_updated
  • enable_1.7
  • enable_logging
  • ephemeral_py
  • error_handler_func
  • error_log
  • export_remote_peer
  • expose_conn_directly
  • fake_call_frame
  • fix-concurrent-map-writes
  • fix-glide-install
  • fix-peer-ip-tag
  • fix_0_ttl
  • fix_deps
  • fix_error_logger
  • fix_flaky_arg3
  • fix_flaky_introspect
  • fix_flaky_test
  • fix_goroutine_leaks
  • fix_lint
  • flaky_close_test
  • flaky_fragmentation_test
  • flaky_inbound_test
  • flaky_peer_remove_closed
  • flaky_peerscorenewconn
  • flaky_readtimeout
  • flaky_relay
  • flaky_relay_closed_peers
  • flaky_relay_concurrent_test
  • flaky_requeststate
  • flaky_responseclosed
  • flaky_streamcancelled
  • flaky_test
  • flaky_tests
  • flaky_writearg3
  • for-yarpc-peer-lists
  • frame_pool
  • get_args
  • get_handler
  • glide
  • glide_up
  • go-thrift-stream
  • go1.9
  • go17
  • go_tip
  • go_version
  • goroutine_leak_multiexclude
  • handle_empty_frame
  • health
  • hosts_err
  • hyperbahn_log
  • hyperbahn_retry
  • hyperbahn_stub
  • ignore_docker
  • ignore_lint
  • ignore_settimeout
  • imalison
  • imalison2
  • import_ordering
  • improve_logging
  • inbound_accept_multiple
  • include_others
  • increase_timeout
  • increase_tombstones
  • init_res
  • init_res_handling
  • inner_server
  • integrate-opentracing
  • integrate-opentracing-crossdock-tests
  • integrate-opentracing-glide-xdock
  • interceptor
  • interceptor_dev
  • interceptor_master
  • interceptor_original
  • interceptor_thrift
  • interceptor_thrift_wip
  • introspect_num_connections
  • introspect_order
  • introspection_include_version
  • introspection_tchannel
  • invaliddeadline
  • josh_streaming_explore
  • json_err
  • keon-patch-1
  • lazy_frame
  • leak_detector_skip
  • leak_end
  • lint_16
  • listenip_local
  • local_peer
  • lock_peers
  • log_conn_dir
  • log_err
  • log_fail
  • log_fields
  • log_new_channel
  • logfields
  • logger_faster
  • long_test
  • master
  • mex_readerwriter
  • mex_safe
  • misc_introspection_logging
  • mock_peerselection
  • mock_real_forward
  • moreargs_err
  • move_ctx_inside
  • muttley
  • muttley_bench
  • muttley_better_introspection
  • muttley_declined
  • muttley_flaky_close
  • muttley_forwarderr
  • muttley_inbounds
  • muttley_lazy_frame
  • muttley_remove_relaytest
  • muttley_repeat_bench
  • muttley_runcount
  • muttley_testserver
  • nathan/add_dispatcher
  • no_leak_test
  • no_mock
  • no_start_close
  • no_test_deps
  • non-error-code
  • notify-peer-change
  • parse_version_headers
  • partial_read_stream
  • pass-context-to-response-callback
  • peer-status-change-on-close
  • peer_active_conn
  • peer_heap
  • peer_heap_unexport
  • peer_score_calc
  • peer_state
  • peer_test_cleanup
  • peer_test_close
  • pengzhai
  • pin-glide
  • pin-thrift-0.10.0
  • pin-thrift-0.9
  • pre_conn
  • publicize-root-peers
  • pv_benchmark_logging
  • pv_finishes_bug
  • pv_relay_pool
  • pv_timer_wheel
  • pv_version
  • race_add_close
  • race_flaky
  • rand-load-balance
  • rand_conn
  • rank_test
  • rate_limit
  • read_test_failure
  • readarg23
  • reduce_conn_refused
  • refactor_relay_test
  • relax-write-arg3-after-timeout
  • relay_assignment
  • relay_atomic
  • relay_channel_closed
  • relay_close_conn
  • relay_default
  • relay_dest_log
  • relay_enable_test
  • relay_err_alloc
  • relay_handle_call
  • relay_interface
  • relay_log
  • relay_logger
  • relay_method
  • relay_missing_logger
  • relay_no_ctx
  • relay_not_closing
  • relay_outgoing
  • relay_outgoing_nohostport
  • relay_queuefull
  • relay_race_timeout
  • relayer
  • release_1.0.6
  • release_1.0.7
  • release_1.1
  • remote_hp_mismatch
  • remove-tracer-from-registrar
  • remove_atomic
  • remove_outbound
  • remove_peer
  • remove_remote_process_match
  • remove_test_deps
  • remove_unused
  • remove_unused_field
  • remove_verify
  • repeat_bench
  • require-thrift-fields
  • retry_request_state
  • rk
  • robskillington/always-call-post-response-cb-if-ctx-fn-called
  • root-handler
  • rw-able-interface
  • rw-interface
  • sc_options_on_new
  • schallert/dscp_tos_rebase
  • set-handler
  • set_request_size
  • shard-relay
  • sleep_leak
  • stack_fix
  • state_ignore
  • stats_flake
  • stream
  • stream_stuck
  • stream_test
  • stream_unblock_readers
  • struct_sizes
  • such_lint
  • test_flakes
  • test_frag_slow
  • test_server
  • testserver_client
  • testutils
  • testutils_again
  • testutils_register
  • thrift-v1.0.0-dev
  • thrift_byte
  • thrift_ctx
  • thrift_gen
  • thrift_gen_case
  • thrift_gen_namespace
  • thrift_gen_tests
  • thrift_headers
  • thrift_nilerr
  • thrift_struct
  • timeout_multiplier
  • timeout_no_goroutine
  • tracing_span_order
  • track_channels
  • travis_1.7rc1
  • travis_golint
  • travis_lint
  • travisbranchinenv
  • unblock_on_close
  • unexpected_conn_change
  • unknown_exception
  • unmarshal_text
  • update_changelog
  • use-dialcontext
  • use_package_filename
  • use_root_peers
  • v1.0.0
  • v1.0.1
  • v1.0.2
  • v1.0.3
  • v1.0.4
  • v1.0.5
  • v1.0.6
  • v1.0.6-dev
  • v1.0.7
  • v1.0.8
  • v1.0.8_notes
  • v1.0.9
  • v1.1.0
  • v1.2.0
  • v1.2.0-dev
  • v1.2.1
  • v1.2.2
  • v1.2.3
  • v1.3.0
  • v1.3.0-post
  • v1.3.0-prep
  • v1.4.0
  • v1.5.0
  • v1.6.0
  • v1.6.0-post
  • v1.6.0-pre
  • v1.7.0
  • v_1.0.3
  • validate_pre_connection
  • verified_server
  • version_cut
  • version_lint
  • vet_err
  • without-headers
  • womp
  • wrap_ctx
  • writer_after_connerr
  • xichen-fix-peer-connection-race
  • ysh-context-with-headers

pending completion
3231

push

travis-ci

prashantv
Make frame parsing more resilient to bad inputs

Currently, if we recieve a frame that is invalid (E.g., the size is
smaller than the header size which is the minimum), then we end up with
a huge payload size which causes an out-of-bounds panic trying to read
the payload.

Add full unit tests for parsing of the frame, as well as a quick test to
ensure TChannel will not panic on bad frames.

4343 of 4931 relevant lines covered (88.08%)

20433.37 hits per line

Relevant lines Covered
Build:
Build:
4931 RELEVANT LINES 4343 COVERED LINES
20433.37 HITS PER LINE
Source Files on resilient_frame_parsing
  • List 0
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
3231 resilient_frame_parsing Make frame parsing more resilient to bad inputs Currently, if we recieve a frame that is invalid (E.g., the size is smaller than the header size which is the minimum), then we end up with a huge payload size which causes an out-of-bounds panic tr... push 19 Apr 2017 12:06AM UTC prashantv travis-ci pending completion  
See All Builds (2285)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc