4 ms·
Broken. This will generate page faults if your string ends at a page-boundry and start address isn't aligned on four bytes.
by tqh 9y ago
Broken. This will generate page faults if your string ends at a page-boundry and start address isn't aligned on four bytes.
- CarolineW 9y agoYou are absolutely right, but it appears that you didn't read to the end, stopping at the broken implementation that the author says is broken. But you're right, and it does put the entire article in question. I'm tempted to use this as an interview question: There's a bug in this code - can you find it? Talk to me about why this is a bad thing to do? How can we fix it? What's the most important thing to be thinking about? I was also interested to read the follow-up linked to from the bottom of the article, but that's a 404.
- tqh 9y agoI can't see where that was written. Only that malicious users may read past the end.
- CarolineW 9y agoOK, I don't know what you mean by: > I can't see where that was written ^^^^ To what exactly are you referring by the "that"? > Only that malicious users may read > past the end. There's an entire section after that: Reducing complexity Improvement is not that much effective? Actually, we are optimizing the wrong way! Really ;)! When optimizing code, you have to, in order: reduce complexity; tune your compiler; optimize your code. So, how can we reduce complexity (Currently O(n) for both algorithms)? Simply by storing the string length somewhere! The complexity is then O(1) etc. But it's all there, and either you've read it and I don't know what you mean, or you haven't read it, and I've provided the pointer for you.