
Am 24.05.2011 00:22, schrieb Wolfgang Denk:
Dear Alexander Holler,
In message4DDADBB6.30607@ahsoftware.de you wrote:
So you I will look forward to checks for NULL pointers and similiar in all C standard functions implemented in u-boot to circumvent tons of possible real world bugs in all callers of strcpy, strlen, mem* and whatever.
If you think a bit about this, you may find it more difficult than you expect. Keep in mind that on most systems supported by U-Boot code like
int *p = (int *)0;
print("*p = %d\n", *p);
is perfectly legal and supposed to work without any problems - because 0 is a legal address, and it makes perfect senze that commands like "md" or "cp" can be used to access it. In the result, strcpy(), strlen(), mem*() and whatever must beable to work on address 0 likeon any other address, too.
:-P
I've never seen a valid use of strcpy() with a null-pointer in real world programs, which we are talking about, except in bugs.
BTW, you missed to quote my suggestion to get rid of the implementation of memcpy() and use always memmove(). That would be really defensive programming and if the unnecessary identity-check in memcpy isn't of interest, the additional other check done by memmove() shouldn't be a problem too.
But I will stop complaining as requested and getting silent again.
Regards,
Alexander