mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Fixed undefined behavior in Prettyfier and Print (issue #354)
				
					
				
			This commit is contained in:
		| @@ -6,6 +6,7 @@ HEAD | ||||
|  | ||||
| * Fixed `array[idx].as<JsonVariant>()` and `object[key].as<JsonVariant>()` | ||||
| * Fixed return value of `JsonObject::set()` (issue #350) | ||||
| * Fixed undefined behavior in `Prettyfier` and `Print` (issue #354) | ||||
|  | ||||
| v5.6.6 | ||||
| ------ | ||||
|   | ||||
| @@ -66,28 +66,46 @@ class Prettyfier : public Print { | ||||
|   } | ||||
|  | ||||
|   size_t writeBlockClose(uint8_t c) { | ||||
|     return unindentIfNeeded() + _sink.write(c); | ||||
|     size_t n = 0; | ||||
|     n += unindentIfNeeded(); | ||||
|     n += _sink.write(c); | ||||
|     return n; | ||||
|   } | ||||
|  | ||||
|   size_t writeBlockOpen(uint8_t c) { | ||||
|     return indentIfNeeded() + _sink.write(c); | ||||
|     size_t n = 0; | ||||
|     n += indentIfNeeded(); | ||||
|     n += _sink.write(c); | ||||
|     return n; | ||||
|   } | ||||
|  | ||||
|   size_t writeColon() { | ||||
|     return _sink.write(':') + _sink.write(' '); | ||||
|     size_t n = 0; | ||||
|     n += _sink.write(':'); | ||||
|     n += _sink.write(' '); | ||||
|     return n; | ||||
|   } | ||||
|  | ||||
|   size_t writeComma() { | ||||
|     return _sink.write(',') + _sink.println(); | ||||
|     size_t n = 0; | ||||
|     n += _sink.write(','); | ||||
|     n += _sink.println(); | ||||
|     return n; | ||||
|   } | ||||
|  | ||||
|   size_t writeQuoteOpen() { | ||||
|     _inString = true; | ||||
|     return indentIfNeeded() + _sink.write('"'); | ||||
|     size_t n = 0; | ||||
|     n += indentIfNeeded(); | ||||
|     n += _sink.write('"'); | ||||
|     return n; | ||||
|   } | ||||
|  | ||||
|   size_t writeNormalChar(uint8_t c) { | ||||
|     return indentIfNeeded() + _sink.write(c); | ||||
|     size_t n = 0; | ||||
|     n += indentIfNeeded(); | ||||
|     n += _sink.write(c); | ||||
|     return n; | ||||
|   } | ||||
|  | ||||
|   size_t indentIfNeeded() { | ||||
|   | ||||
| @@ -28,7 +28,12 @@ class Print { | ||||
|     return n; | ||||
|   } | ||||
|  | ||||
|   size_t println() { return write('\r') + write('\n'); } | ||||
|   size_t println() { | ||||
|     size_t n = 0; | ||||
|     n += write('\r'); | ||||
|     n += write('\n'); | ||||
|     return n; | ||||
|   } | ||||
| }; | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user