Broken. This will generate page faults if your string ends at a page-boundry and start address isn't aligned on four bytes.
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.
> 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.