patch 8.1.1653: ubsan warns for possibly passing NULL pointer
Problem: Ubsan warns for possibly passing NULL pointer.
Solution: Skip code when length is zero. (Dominique Pelle, closes #4631)
diff --git a/src/channel.c b/src/channel.c
index eb5af0a..5d1b83a 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -3990,7 +3990,7 @@
writeq_T *last = wq->wq_prev;
/* append to the last entry */
- if (ga_grow(&last->wq_ga, len) == OK)
+ if (len > 0 && ga_grow(&last->wq_ga, len) == OK)
{
mch_memmove((char *)last->wq_ga.ga_data
+ last->wq_ga.ga_len,
@@ -4012,7 +4012,7 @@
wq->wq_prev->wq_next = last;
wq->wq_prev = last;
ga_init2(&last->wq_ga, 1, 1000);
- if (ga_grow(&last->wq_ga, len) == OK)
+ if (len > 0 && ga_grow(&last->wq_ga, len) == OK)
{
mch_memmove(last->wq_ga.ga_data, buf, len);
last->wq_ga.ga_len = len;