SInce the latest update (v2.8)
publish_P(const char* topic, const char* payload, boolean retained)
crashes when using it with payload located in PROGMEM.
Example: Using of
client.publish_P("outTopic_P", PSTR("test"), true);
was possible in v2.7, but no longer in v2.8. (tested with mqtt_esp8266)
Seems that the problem is in line 475
return publish_P(topic, (const uint8_t*)payload, payload ? strnlen(payload, this->bufferSize) : 0, retained);
Maybe better use strnlen_P.
Thank you.