mirror of
https://github.com/netsurf-browser/netsurf
synced 2025-01-10 21:12:01 +03:00
make about handler ssenddataf cope with longer data
This commit is contained in:
parent
7d59f09bea
commit
297448cfff
@ -132,6 +132,7 @@ fetch_about_send_header(struct fetch_about_context *ctx, const char *fmt, ...)
|
|||||||
static nserror ssenddataf(struct fetch_about_context *ctx, const char *fmt, ...)
|
static nserror ssenddataf(struct fetch_about_context *ctx, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
char buffer[1024];
|
char buffer[1024];
|
||||||
|
char *dbuff;
|
||||||
fetch_msg msg;
|
fetch_msg msg;
|
||||||
va_list ap;
|
va_list ap;
|
||||||
int slen;
|
int slen;
|
||||||
@ -142,10 +143,7 @@ static nserror ssenddataf(struct fetch_about_context *ctx, const char *fmt, ...)
|
|||||||
|
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
|
|
||||||
if (slen >= (int)sizeof(buffer)) {
|
if (slen < (int)sizeof(buffer)) {
|
||||||
return NSERROR_NOSPACE;
|
|
||||||
}
|
|
||||||
|
|
||||||
msg.type = FETCH_DATA;
|
msg.type = FETCH_DATA;
|
||||||
msg.data.header_or_data.buf = (const uint8_t *) buffer;
|
msg.data.header_or_data.buf = (const uint8_t *) buffer;
|
||||||
msg.data.header_or_data.len = slen;
|
msg.data.header_or_data.len = slen;
|
||||||
@ -157,6 +155,30 @@ static nserror ssenddataf(struct fetch_about_context *ctx, const char *fmt, ...)
|
|||||||
return NSERROR_OK;
|
return NSERROR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dbuff = malloc(slen + 1);
|
||||||
|
if (dbuff == NULL) {
|
||||||
|
return NSERROR_NOSPACE;
|
||||||
|
}
|
||||||
|
|
||||||
|
va_start(ap, fmt);
|
||||||
|
|
||||||
|
slen = vsnprintf(dbuff, slen + 1, fmt, ap);
|
||||||
|
|
||||||
|
va_end(ap);
|
||||||
|
|
||||||
|
msg.type = FETCH_DATA;
|
||||||
|
msg.data.header_or_data.buf = (const uint8_t *)dbuff;
|
||||||
|
msg.data.header_or_data.len = slen;
|
||||||
|
|
||||||
|
if (fetch_about_send_callback(&msg, ctx)) {
|
||||||
|
free(dbuff);
|
||||||
|
return NSERROR_INVALID;
|
||||||
|
}
|
||||||
|
|
||||||
|
free(dbuff);
|
||||||
|
return NSERROR_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate a 500 server error respnse
|
* Generate a 500 server error respnse
|
||||||
|
Loading…
Reference in New Issue
Block a user