=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/rcs/buf.c,v retrieving revision 1.16 retrieving revision 1.17 diff -c -r1.16 -r1.17 *** src/usr.bin/rcs/buf.c 2010/07/28 09:07:11 1.16 --- src/usr.bin/rcs/buf.c 2010/09/08 15:13:39 1.17 *************** *** 1,4 **** ! /* $OpenBSD: buf.c,v 1.16 2010/07/28 09:07:11 ray Exp $ */ /* * Copyright (c) 2003 Jean-Francois Brousseau * All rights reserved. --- 1,4 ---- ! /* $OpenBSD: buf.c,v 1.17 2010/09/08 15:13:39 tobias Exp $ */ /* * Copyright (c) 2003 Jean-Francois Brousseau * All rights reserved. *************** *** 194,207 **** { u_char *bp; ! bp = b->cb_buf + b->cb_len; ! if (bp == (b->cb_buf + b->cb_size)) { ! /* extend */ buf_grow(b, BUF_INCR); ! ! /* the buffer might have been moved */ ! bp = b->cb_buf + b->cb_len; ! } *bp = (u_char)c; b->cb_len++; } --- 194,202 ---- { u_char *bp; ! if (SIZE_LEFT(b) == 0) buf_grow(b, BUF_INCR); ! bp = b->cb_buf + b->cb_len; *bp = (u_char)c; b->cb_len++; } *************** *** 230,247 **** buf_append(BUF *b, const void *data, size_t len) { size_t left, rlen; ! u_char *bp, *bep; ! bp = b->cb_buf + b->cb_len; ! bep = b->cb_buf + b->cb_size; ! left = bep - bp; rlen = len; ! if (left < len) { buf_grow(b, len - left); ! bp = b->cb_buf + b->cb_len; ! } ! memcpy(bp, data, rlen); b->cb_len += rlen; --- 225,238 ---- buf_append(BUF *b, const void *data, size_t len) { size_t left, rlen; ! u_char *bp; ! left = SIZE_LEFT(b); rlen = len; ! if (left < len) buf_grow(b, len - left); ! bp = b->cb_buf + b->cb_len; memcpy(bp, data, rlen); b->cb_len += rlen;