=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/rcs/rlog.c,v retrieving revision 1.63 retrieving revision 1.64 diff -c -r1.63 -r1.64 *** src/usr.bin/rcs/rlog.c 2010/07/23 21:46:05 1.63 --- src/usr.bin/rcs/rlog.c 2010/07/30 21:47:18 1.64 *************** *** 1,4 **** ! /* $OpenBSD: rlog.c,v 1.63 2010/07/23 21:46:05 ray Exp $ */ /* * Copyright (c) 2005, 2009 Joris Vink * Copyright (c) 2005, 2006 Xavier Santolaria --- 1,4 ---- ! /* $OpenBSD: rlog.c,v 1.64 2010/07/30 21:47:18 ray Exp $ */ /* * Copyright (c) 2005, 2009 Joris Vink * Copyright (c) 2005, 2006 Xavier Santolaria *************** *** 227,233 **** if (last == NULL) { flags |= RLOG_DATE_SINGLE; ! firstdate = date_parse(first); delim = '\0'; last = "\0"; } else { --- 227,234 ---- if (last == NULL) { flags |= RLOG_DATE_SINGLE; ! if ((firstdate = date_parse(first)) == -1) ! return -1; delim = '\0'; last = "\0"; } else { *************** *** 237,258 **** if (delim == '>' && *last == '\0') { flags |= RLOG_DATE_EARLIER; ! firstdate = date_parse(first); } if (delim == '>' && *first == '\0' && *last != '\0') { flags |= RLOG_DATE_LATER; ! firstdate = date_parse(last); } if (delim == '<' && *last == '\0') { flags |= RLOG_DATE_LATER; ! firstdate = date_parse(first); } if (delim == '<' && *first == '\0' && *last != '\0') { flags |= RLOG_DATE_EARLIER; ! firstdate = date_parse(last); } if (*first != '\0' && *last != '\0') { --- 238,263 ---- if (delim == '>' && *last == '\0') { flags |= RLOG_DATE_EARLIER; ! if ((firstdate = date_parse(first)) == -1) ! return -1; } if (delim == '>' && *first == '\0' && *last != '\0') { flags |= RLOG_DATE_LATER; ! if ((firstdate = date_parse(last)) == -1) ! return -1; } if (delim == '<' && *last == '\0') { flags |= RLOG_DATE_LATER; ! if ((firstdate = date_parse(first)) == -1) ! return -1; } if (delim == '<' && *first == '\0' && *last != '\0') { flags |= RLOG_DATE_EARLIER; ! if ((firstdate = date_parse(last)) == -1) ! return -1; } if (*first != '\0' && *last != '\0') { *************** *** 265,270 **** --- 270,277 ---- firstdate = date_parse(last); lastdate = date_parse(first); } + if (firstdate == -1 || lastdate == -1) + return -1; } TAILQ_FOREACH(rdp, &(rcsfile->rf_delta), rd_list) { *************** *** 343,351 **** if (rflag == 1) nrev = rcs_rev_select(file, revisions); ! else if (dflag == 1) ! nrev = rlog_select_daterev(file, rlog_dates); ! else nrev = file->rf_ndelta; if ((workfile = basename(fname)) == NULL) --- 350,359 ---- if (rflag == 1) nrev = rcs_rev_select(file, revisions); ! else if (dflag == 1) { ! if ((nrev = rlog_select_daterev(file, rlog_dates)) == -1) ! errx(1, "invalid date: %s", rlog_dates); ! } else nrev = file->rf_ndelta; if ((workfile = basename(fname)) == NULL)