postprocessor: do not call memcpy() / memmove() with zero size

This commit is contained in:
Evgeny Grin (Karlson2k)
2021-09-12 19:31:44 +03:00
parent 6c2f3cf24f
commit e724878002
+11 -7
View File
@@ -360,9 +360,10 @@ process_value (struct MHD_PostProcessor *pp,
mhd_assert ( (NULL != value_start) || (NULL == value_end) );
mhd_assert ( (NULL == last_escape) || (NULL != value_start) );
/* move remaining input from previous round into processing buffer */
memcpy (xbuf,
pp->xbuf,
pp->xbuf_pos);
if (0 != pp->xbuf_pos)
memcpy (xbuf,
pp->xbuf,
pp->xbuf_pos);
xoff = pp->xbuf_pos;
pp->xbuf_pos = 0;
if ( (NULL != last_escape) &&
@@ -460,10 +461,13 @@ process_value (struct MHD_PostProcessor *pp,
pp->value_offset += xoff;
if (cut)
break;
xbuf[delta] = '%'; /* undo 0-termination */
memmove (xbuf,
&xbuf[delta],
clen);
if (0 != clen)
{
xbuf[delta] = '%'; /* undo 0-termination */
memmove (xbuf,
&xbuf[delta],
clen);
}
xoff = clen;
}
}