Michael W. Bombardieri wrote: > Hi tech@, > > Function xfree() was previously removed from rcs, so drop it from > opencvs too... > > http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/rcs/xmalloc.c?f=h#rev1.9
Good catch, thanks. My eyes glazed over a little while reviewing this, but tentative ok mmcc@ Below is what I consider a better refactoring of buf_free(). It makes it NULL-safe and has more classic free function logic. > Footnote: > I noticed that rcsnum_free() is just free() so maybe that could be > removed also (not included in this patch). I'll have to look, but this sounds like a good idea to me. Index: buf.c =================================================================== RCS file: /cvs/src/usr.bin/cvs/buf.c,v retrieving revision 1.82 diff -u -p -r1.82 buf.c --- buf.c 5 Feb 2015 12:59:57 -0000 1.82 +++ buf.c 5 Nov 2015 05:08:57 -0000 @@ -119,15 +119,15 @@ buf_load_fd(int fd) void buf_free(BUF *b) { - if (b->cb_buf != NULL) - xfree(b->cb_buf); - xfree(b); + if (b != NULL) { + free(b->cb_buf); + free(b); + } } /* * Free the buffer <b>'s structural information but do not free the contents - * of the buffer. Instead, they are returned and should be freed later using - * xfree(). + * of the buffer. Instead, they are returned and should be freed later. */ void * buf_release(BUF *b) @@ -135,7 +135,7 @@ buf_release(BUF *b) void *tmp; tmp = b->cb_buf; - xfree(b); + free(b); return (tmp); }