Check for NULL pointer in Print.write().

Otherwise, trying to print(NULL) or write(NULL) could print a random
character.

http://code.google.com/p/arduino/issues/detail?id=941
This commit is contained in:
David A. Mellis 2012-06-03 07:48:32 -04:00
parent 4ed0bd2bd5
commit 57973bcd49
1 changed files with 4 additions and 1 deletions

View File

@ -46,7 +46,10 @@ class Print
void clearWriteError() { setWriteError(0); }
virtual size_t write(uint8_t) = 0;
size_t write(const char *str) { return write((const uint8_t *)str, strlen(str)); }
size_t write(const char *str) {
if (str == NULL) return 0;
return write((const uint8_t *)str, strlen(str));
}
virtual size_t write(const uint8_t *buffer, size_t size);
size_t print(const __FlashStringHelper *);