Source Joachim Nilsson: Coverity Scan reported these two stack variables as uninitialized, in particular the .r_lineno struct member was uninitialized. This patch clears the 'struct region' rather than setting .r_lineno because if any more struct members are added in the future the clear will cover them too.
I think Joachim's approach is sensible. ok? -lum Index: undo.c =================================================================== RCS file: /cvs/src/usr.bin/mg/undo.c,v retrieving revision 1.57 diff -u -p -u -p -r1.57 undo.c --- undo.c 11 Dec 2015 20:21:23 -0000 1.57 +++ undo.c 2 Sep 2016 07:02:18 -0000 @@ -269,6 +269,8 @@ undo_add_insert(struct line *lp, int off if (!undo_enable_flag) return (TRUE); + + memset(®, 0, sizeof(reg)); reg.r_linep = lp; reg.r_offset = offset; reg.r_size = size; @@ -315,6 +317,7 @@ undo_add_delete(struct line *lp, int off if (!undo_enable_flag) return (TRUE); + memset(®, 0, sizeof(reg)); reg.r_linep = lp; reg.r_offset = offset; reg.r_size = size;