=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/cvs/entries.c,v retrieving revision 1.86 retrieving revision 1.87 diff -u -r1.86 -r1.87 --- src/usr.bin/cvs/entries.c 2008/01/10 10:09:27 1.86 +++ src/usr.bin/cvs/entries.c 2008/02/04 15:08:44 1.87 @@ -1,4 +1,4 @@ -/* $OpenBSD: entries.c,v 1.86 2008/01/10 10:09:27 tobias Exp $ */ +/* $OpenBSD: entries.c,v 1.87 2008/02/04 15:08:44 tobias Exp $ */ /* * Copyright (c) 2006 Joris Vink * @@ -73,8 +73,12 @@ while (fgets(buf, sizeof(buf), fp)) { buf[strcspn(buf, "\n")] = '\0'; - p = &buf[1]; + if (strlen(buf) < 2) + fatal("cvs_ent_open: %s: malformed line %s", + ep->cef_lpath, buf); + p = &buf[2]; + if (buf[0] == 'A') { line = xmalloc(sizeof(*line)); line->buf = xstrdup(p); @@ -274,7 +278,7 @@ fatal("cvs_ent_add: fopen: `%s': %s", ep->cef_lpath, strerror(errno)); - fputc('A', fp); + fputs("A ", fp); fputs(line, fp); fputc('\n', fp); @@ -302,7 +306,7 @@ fatal("cvs_ent_remove: fopen: `%s': %s", ep->cef_lpath, strerror(errno)); - fputc('R', fp); + fputs("R ", fp); fputs(l->buf, fp); fputc('\n', fp);