commit e724878002ace7dfbd53e4ecdc8093e16ef353fe
parent 6c2f3cf24f4a03b1eb3689d7913c11c7671c948f
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
Date: Sun, 12 Sep 2021 18:11:28 +0300
postprocessor: do not call memcpy() / memmove() with zero size
Diffstat:
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/src/microhttpd/postprocessor.c b/src/microhttpd/postprocessor.c
@@ -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;
}
}