mirror of
https://github.com/cesanta/mongoose.git
synced 2026-11-02 13:20:51 +00:00
close connection on OOM when printing
This commit is contained in:
1 parent
49470f9bd2
commit
3c7b2dcd6d
2 files changed
+16
-4
No files matched your search
+8
-2
@@ -3866,8 +3866,14 @@ struct mg_connection *mg_mqtt_listen(struct mg_mgr *mgr, const char *url,
|
|||||||
|
|
||||||
size_t mg_vprintf(struct mg_connection *c, const char *fmt, va_list *ap) {
|
size_t mg_vprintf(struct mg_connection *c, const char *fmt, va_list *ap) {
|
||||||
size_t old = c->send.len;
|
size_t old = c->send.len;
|
||||||
mg_vxprintf(mg_pfn_iobuf, &c->send, fmt, ap);
|
size_t expected = mg_vxprintf(mg_pfn_iobuf, &c->send, fmt, ap);
|
||||||
return c->send.len - old;
|
size_t actual = c->send.len - old;
|
||||||
|
if (actual != expected) {
|
||||||
|
mg_error(c, "OOM");
|
||||||
|
c->send.len = old;
|
||||||
|
actual = 0;
|
||||||
|
}
|
||||||
|
return actual;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t mg_printf(struct mg_connection *c, const char *fmt, ...) {
|
size_t mg_printf(struct mg_connection *c, const char *fmt, ...) {
|
||||||
|
|||||||
@@ -9,8 +9,14 @@
|
|||||||
|
|
||||||
size_t mg_vprintf(struct mg_connection *c, const char *fmt, va_list *ap) {
|
size_t mg_vprintf(struct mg_connection *c, const char *fmt, va_list *ap) {
|
||||||
size_t old = c->send.len;
|
size_t old = c->send.len;
|
||||||
mg_vxprintf(mg_pfn_iobuf, &c->send, fmt, ap);
|
size_t expected = mg_vxprintf(mg_pfn_iobuf, &c->send, fmt, ap);
|
||||||
return c->send.len - old;
|
size_t actual = c->send.len - old;
|
||||||
|
if (actual != expected) {
|
||||||
|
mg_error(c, "OOM");
|
||||||
|
c->send.len = old;
|
||||||
|
actual = 0;
|
||||||
|
}
|
||||||
|
return actual;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t mg_printf(struct mg_connection *c, const char *fmt, ...) {
|
size_t mg_printf(struct mg_connection *c, const char *fmt, ...) {
|
||||||
|
|||||||
Reference in new issue
Block a user