Skip to content
  • Home Home Home, current page.
  • Moments Moments Moments, current page.

Saved searches

  • Remove
  • In this conversation
    Verified accountProtected Tweets @
Suggested users
  • Verified accountProtected Tweets @
  • Verified accountProtected Tweets @
  • Language: English
    • Bahasa Indonesia
    • Bahasa Melayu
    • Català
    • Čeština
    • Dansk
    • Deutsch
    • English UK
    • Español
    • Filipino
    • Français
    • Hrvatski
    • Italiano
    • Magyar
    • Nederlands
    • Norsk
    • Polski
    • Português
    • Română
    • Slovenčina
    • Suomi
    • Svenska
    • Tiếng Việt
    • Türkçe
    • Ελληνικά
    • Български език
    • Русский
    • Српски
    • Українська мова
    • עִבְרִית
    • العربية
    • فارسی
    • मराठी
    • हिन्दी
    • বাংলা
    • ગુજરાતી
    • தமிழ்
    • ಕನ್ನಡ
    • ภาษาไทย
    • 한국어
    • 日本語
    • 简体中文
    • 繁體中文
  • Have an account? Log in
    Have an account?
    · Forgot password?

    New to Twitter?
    Sign up
pcwalton's profile
Patrick Walton
Patrick Walton
Patrick Walton
@pcwalton

Tweets

Patrick Walton

@pcwalton

Research engineer at Mozilla

San Francisco, CA
pcwalton.github.io
Joined November 2009

Tweets

  • © 2018 Twitter
  • About
  • Help Center
  • Terms
  • Privacy policy
  • Cookies
  • Ads info
Dismiss
Previous
Next

Go to a person's profile

Saved searches

  • Remove
  • In this conversation
    Verified accountProtected Tweets @
Suggested users
  • Verified accountProtected Tweets @
  • Verified accountProtected Tweets @

Promote this Tweet

Block

  • Tweet with a location

    You can add location information to your Tweets, such as your city or precise location, from the web and via third-party applications. You always have the option to delete your Tweet location history. Learn more

    Your lists

    Create a new list


    Under 100 characters, optional

    Privacy

    Copy link to Tweet

    Embed this Tweet

    Embed this Video

    Add this Tweet to your website by copying the code below. Learn more

    Add this video to your website by copying the code below. Learn more

    Hmm, there was a problem reaching the server.

    By embedding Twitter content in your website or app, you are agreeing to the Twitter Developer Agreement and Developer Policy.

    Preview

    Why you're seeing this ad

    Log in to Twitter

    · Forgot password?
    Don't have an account? Sign up »

    Sign up for Twitter

    Not on Twitter? Sign up, tune into the things you care about, and get updates as they happen.

    Sign up
    Have an account? Log in »

    Two-way (sending and receiving) short codes:

    Country Code For customers of
    United States 40404 (any)
    Canada 21212 (any)
    United Kingdom 86444 Vodafone, Orange, 3, O2
    Brazil 40404 Nextel, TIM
    Haiti 40404 Digicel, Voila
    Ireland 51210 Vodafone, O2
    India 53000 Bharti Airtel, Videocon, Reliance
    Indonesia 89887 AXIS, 3, Telkomsel, Indosat, XL Axiata
    Italy 4880804 Wind
    3424486444 Vodafone
    » See SMS short codes for other countries

    Confirmation

     

    Welcome home!

    This timeline is where you’ll spend most of your time, getting instant updates about what matters to you.

    Tweets not working for you?

    Hover over the profile pic and click the Following button to unfollow any account.

    Say a lot with a little

    When you see a Tweet you love, tap the heart — it lets the person who wrote it know you shared the love.

    Spread the word

    The fastest way to share someone else’s Tweet with your followers is with a Retweet. Tap the icon to send it instantly.

    Join the conversation

    Add your thoughts about any Tweet with a Reply. Find a topic you’re passionate about, and jump right in.

    Learn the latest

    Get instant insight into what people are talking about now.

    Get more of what you love

    Follow more accounts to get instant updates about topics you care about.

    Find what's happening

    See the latest conversations about any topic instantly.

    Never miss a Moment

    Catch up instantly on the best stories happening as they unfold.

    1. Brian Smith‏ @BRIAN_____ Oct 25

      It's hard to appreciate how good Rustls is at avoiding UaF since UaF avoidance is taken for granted in idiomatic Rust code. Tiny things like `#[must_use]` are small but help avoid big failures. Our friends doing concurrency & malloc/free in C are still struggling w/ the basics.

      1 reply 4 retweets 38 likes
    2. Ted Mielczarek‏ @TedMielczarek Oct 25
      Replying to @BRIAN_____

      Trying to write C/C++ after writing Rust feels ridiculous. Why should I have to keep track of things that the compiler can do for me, especially when the consequences are exploitable security bugs?

      1 reply 1 retweet 9 likes
    3. Brian Smith‏ @BRIAN_____ Oct 25
      Replying to @TedMielczarek

      I agree. Though to be care, In C++ one rarely has to keep track of things manually, in modern codebases. Our experience maintaining a gigantic performance-sensitive legacy app that predates even the first ISO C++ (IIRC) biases us too much against C++.

      3 replies 0 retweets 3 likes
      Patrick Walton‏ @pcwalton Oct 25
      Replying to @BRIAN_____ @TedMielczarek

      For me the biggest annoyance is that Rust doesn’t have a wonderful solution for the most pernicious UAF in browsers: unexpected reentrancy from DOM into malicious JS. I don’t know that there *is* a good solution, really…

      1:41 PM - 25 Oct 2018
      • 7 Likes
      • Brutor Brendan Zabarauskas Jed Davis 🏳️‍🌈 BrendanEich Allan Wirth Who ordered *that*? Rich Felker
      5 replies 0 retweets 7 likes
        1. New conversation
        2. Brian Smith‏ @BRIAN_____ Oct 25
          Replying to @pcwalton @TedMielczarek

          I'm still a fan of the DOM-is-implemented-in-JS idea.

          1 reply 0 retweets 2 likes
        3. Patrick Walton‏ @pcwalton Oct 25
          Replying to @BRIAN_____ @TedMielczarek

          Me too, from an elegance point of view. Still, there has to be a boundary between DOM and native *somewhere*, even if only at windowing layer.

          1 reply 0 retweets 0 likes
        4. Brian Smith‏ @BRIAN_____ Oct 25
          Replying to @pcwalton @TedMielczarek

          I don't know quite why it's hard to find the places where we get unexpected reentrancy. I kind of imagine that most of this "unexpected" reentrancy happens many times through a few paths that are kind of stubbornly not rearchitected to avoid it. That's a pretty uninformed guess.

          1 reply 0 retweets 0 likes
        5. Andrew McCreight‏ @amccreight Oct 25
          Replying to @BRIAN_____ @pcwalton

          Mutation observers are the most common source of this problem. Remove a node from the DOM while in the middle of an operation on that node.

          2 replies 1 retweet 3 likes
        6. Dominic Cooney‏ @dominiccooney Oct 25
          Replying to @amccreight @BrendanEich and

          Mutation Events? Mutation Observers run around microtask time, which is pretty clearly defined and not reentrant.

          1 reply 0 retweets 0 likes
        7. Andrew McCreight‏ @amccreight Oct 25
          Replying to @dominiccooney @BrendanEich and

          Yeah, you are right. I always get those names mixed up for some reason.

          1 reply 0 retweets 0 likes
        8. End of conversation
        1. New conversation
        2. Patrick Walton‏ @pcwalton Oct 25
          Replying to @pcwalton @BRIAN_____ @TedMielczarek

          The fundamental problem is seamless interoperability between the ownership world (C, C++, Rust…) and the shared-everything world (DOM, JS, COM…). Hard problem, and I haven’t seen a safe, usable, and ergonomic solution yet.

          1 reply 0 retweets 4 likes
        3. andreasgal‏Verified account @andreasgal Oct 25
          Replying to @pcwalton @BRIAN_____ @TedMielczarek

          The Gecko script blockers plus static analysis seems helpful?

          1 reply 0 retweets 0 likes
        4. Patrick Walton‏ @pcwalton Oct 25
          Replying to @andreasgal @BRIAN_____ @TedMielczarek

          Helpful, yes, but sound? It’s 2018—we shouldn’t be settling for unsound solutions anymore.

          0 replies 1 retweet 1 like
        5. End of conversation
        1. New conversation
        2. Rich Felker‏ @RichFelker Oct 25
          Replying to @pcwalton @BRIAN_____ @TedMielczarek

          Hm? The problem seems trivial: refcount references from JS to DOM, register all references from DOM to JS in a special GC root.

          2 replies 0 retweets 0 likes
        3. Brian Smith‏ @BRIAN_____ Oct 25
          Replying to @RichFelker @pcwalton @TedMielczarek

          :) I agree that it does seem trivial. Of course that's basically what browsers do but it doesn't work.

          1 reply 0 retweets 0 likes
        4. Rich Felker‏ @RichFelker Oct 25
          Replying to @BRIAN_____ @pcwalton @TedMielczarek

          It "doesn't work" because of some fundamental shortcoming, or it "doesn't work" because they keep making shortcut hacks around it to make it perform better^H^H^H^H^H^H^H^H^H^H^H^H^H^Hso sites can be 10x as bloated at the same performance.

          1 reply 0 retweets 0 likes
        5. Brian Smith‏ @BRIAN_____ Oct 25
          Replying to @RichFelker @pcwalton @TedMielczarek

          Intuitively, Rust's borrow-checker-based access management for objects isn't going to compose well with a system like JS GC that is completely unaware of it. So in your Rust code and C++ code you think you have the one and only (mutable) pointer to an obj but then you trigger JS.

          0 replies 0 retweets 1 like
        6. End of conversation
        1. New conversation
        2. Who ordered *that*?‏ @ManishEarth Oct 25
          Replying to @pcwalton @BRIAN_____ @TedMielczarek

          I mean, Servo's GC solution is *okay*. It doesn't have the reentrancy problem, but it's not 100% rust-sound either and you can cause bugs. The Josephine model may help here.

          1 reply 0 retweets 0 likes
        3. Who ordered *that*?‏ @ManishEarth Oct 25
          Replying to @ManishEarth @pcwalton and

          Though I guess Firefox has a rooting analysis too

          0 replies 0 retweets 0 likes
        4. End of conversation
        1. Allan Wirth‏ @Allan_Wirth Oct 25
          Replying to @pcwalton @BRIAN_____ @TedMielczarek

          Why are those specifically pernicious? Most UAFs are exploitable.

          0 replies 0 retweets 0 likes
          Thanks. Twitter will use this to make your timeline better. Undo
          Undo

      Loading seems to be taking a while.

      Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.

        Promoted Tweet

        false

        • © 2018 Twitter
        • About
        • Help Center
        • Terms
        • Privacy policy
        • Cookies
        • Ads info