Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Sanitizing All* The Things
Search
Greg Heo
September 12, 2017
Technology
0
56
Sanitizing All* The Things
Address sanitizer and thread sanitizer. What, why, how?
Greg Heo
September 12, 2017
Tweet
Share
More Decks by Greg Heo
See All by Greg Heo
Concurrency From the Ground Up
gregheo
0
160
The least you need to know about hashing in Swift
gregheo
0
100
Shared Mutable State
gregheo
0
350
Promises, Futures, and the Shape of Your Code
gregheo
0
54
Shared, Exclusive, Mutable, Immutable
gregheo
0
130
Getting Under Swift’s Skin
gregheo
0
520
Sanitizing Threads for Fun & Profit
gregheo
0
110
Thirteen Ways of Looking at a View Controller
gregheo
0
120
Five Unbelievable Secrets of Reactive Programming the Experts Don't Want You to Know!
gregheo
3
340
Other Decks in Technology
See All in Technology
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
0
3.2k
MySQLユーザ会なにやってるの?とおさそいと / たいへんなのw
sakaik
1
100
「名前解決」から振り返るAmazon VPC
yuki_ink
0
320
React Aria で実現する次世代のアクセシビリティ
ryo_manba
4
800
タイミーのBraze活用 ~PUSH通知を活用したレコメンド~
ozeshun
2
130
バックログを導入し やっぱやめた話
ota42y
0
180
20240906_JAWS_Yamanashi_#1_leap_beyond_the_AWS_all_certifications
tsumita
1
190
リクルート新人研修2024 テキスト生成AI活用
recruitengineers
PRO
10
450
Envoy External AuthZとgRPC Extensionを利用した「頑張らない」Microservices認証認可基盤
andoshin11
0
180
HolidayJp.jl を作りました
mrkn
0
110
FastConnect の冗長性
ocise
0
7.1k
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
0
13k
Featured
See All Featured
Done Done
chrislema
180
16k
StorybookのUI Testing Handbookを読んだ
zakiyama
25
5k
The Straight Up "How To Draw Better" Workshop
denniskardys
230
130k
Ruby is Unlike a Banana
tanoku
96
10k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
24
2k
The Invisible Customer
myddelton
119
13k
Into the Great Unknown - MozCon
thekraken
28
1.4k
Debugging Ruby Performance
tmm1
72
12k
Side Projects
sachag
451
42k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
27
7.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
22
1.7k
How to Think Like a Performance Engineer
csswizardry
15
920
Transcript
Sanitizing All* The Things tacow / September 2017 / @gregheo
❓ ✋
None
✅
None
‣ ASAN ‣ TSAN
‣ What? ‣ So what? ‣ How? ‣ Show me?
Address Sanitizer allocated buffer unallocated!
‣ Buffer overflows ‣ Subtle bugs ‣ Security vulnerabilities
None
allocated buffer padding shadow memory poisoned poisoned OK
asan_malloc malloc asan_free free Shadow memory check Pointer access
Live Coding!
Address Sanitizer Memory corruption & errors Security & crashes Custom
malloc & free
Thread Sanitizer memory buffer read write
‣ Race conditions ‣ Very subtle and difficult-to-reproduce bugs ‣
Thread mismatch errors
None
‣ Thread ID ‣ Timestamp ‣ Read or write? ‣
Bytes accessed
None
Live Coding!
Thread Sanitizer Data race detector Find race conditions & thread
issues Thread IDs & timestamps
Address Sanitizer Memory corruption & errors Security & crashes Custom
malloc & free
None
@gregheo