Live data from Hacker News

Several months in the life of Project Zero – Part 1: The Chrome bug of suffering

googleprojectzero.blogspot.com

21–28 of 28 posts

Re: Several months in the life of Project Zero – Part 1: The Chrome bug of suffering

#21
post #16
post #6

> C-style programming in C++ is also a bad sign; the IOBuffer design pattern with separate storage of buffers and their sizes is inherently dangerous. This the main take away. Even when writing C, just prefer safe libraries to default strings and arrays, when possible. By the way, MSR is hiring for Checked C.

There is no reason to spend time on any variant of C in the age of Rust.

Good point. We can do this in Go.

Re: Several months in the life of Project Zero – Part 1: The Chrome bug of suffering

#22
post #20
post #16

Earlier quoted context omitted.

There is no reason to spend time on any variant of C in the age of Rust.

For new projects, sure. For existing projects, it's not trivial to convert them and anyone working on something significant is going to need time to do a migration during which additional new C code will almost certainly need to be written.

It can be semi-automated with the amazing c2rust[1] tool.

[1] https://github.com/immunant/c2rust

Re: Several months in the life of Project Zero – Part 1: The Chrome bug of suffering

#23
post #13

Earlier quoted context omitted.

All web browsers in iOS run the same engine (Safari). So while Google should fix their layout, this is a very good example on why Apple should allow alternative web engines in their OS.

Devil's advocate: Having only 1 engine means that a website only needs to test once to make sure they support all iPhone+iPad browsers.

Write to the spec and forget about it.

Re: Several months in the life of Project Zero – Part 1: The Chrome bug of suffering

#24
post #22
post #20

Earlier quoted context omitted.

For new projects, sure. For existing projects, it's not trivial to convert them and anyone working on something significant is going to need time to do a migration during which additional new C code will almost certainly need to be written.

It can be semi-automated with the amazing c2rust[1] tool. [1] https://github.com/immunant/c2rust

“semi-” is not a synonym for “easily done with production-ready results”. Until that changes, people are going to need to write new C code even if they're working to refactor their code into a better language.

Re: Several months in the life of Project Zero – Part 1: The Chrome bug of suffering

#25
I don't really understand this level of memory manipulation and exploit construction very well right now. But I notice that the usual Rust advocates are big on boosting how the language restrictions and constructs block these sorts of things. Can anybody comment on how many of the steps they used could actually be prevented by using Rust for this module?

Re: Several months in the life of Project Zero – Part 1: The Chrome bug of suffering

#26
post #13

Earlier quoted context omitted.

All web browsers in iOS run the same engine (Safari). So while Google should fix their layout, this is a very good example on why Apple should allow alternative web engines in their OS.

Devil's advocate: Having only 1 engine means that a website only needs to test once to make sure they support all iPhone+iPad browsers.

You might think so but you would be wrong. For example, try making a link to add a calendar event from Safari vs. Chrome vs. Facebook in-app browser, etc.

Re: Several months in the life of Project Zero – Part 1: The Chrome bug of suffering

#27
post #25

I don't really understand this level of memory manipulation and exploit construction very well right now. But I notice that the usual Rust advocates are big on boosting how the language restrictions and constructs block these sorts of things. Can anybody comment on how many of the steps they used could actually be prevented by using Rust for this module?

If I had to summarize it, it would be:

> C-style programming in C++ is also a bad sign; the IOBuffer design pattern with separate storage of buffers and their sizes is inherently dangerous.

Rust has "slices", which store a pointer and a length together, so they cannot get out of sync like this.

Re: Several months in the life of Project Zero – Part 1: The Chrome bug of suffering

#28
post #2

Google projekt zero website is the ONLY website which frequently get featured on HN that I cannot read on my iphone. Safari, Firefox or Edge are all rendering the page with horizontal scrollbars. I can use 2 finger zoom in and then a third finger to move the content around. At that point I cannot see the screen for my fingers and have problems holding my phone in my hands. Do they have a bounty program for HTML where…

UPDATE: This issues appears to have been fixed now and the page renders as it should. Everything is now fine. Assuming that is this thread that caused someone to to take a look at the UI. Thank you very much Google project Zero :)

Ps: The down votes on my original rant can stop now, I hope. Thx ;)

Post reply on HN