Loading...
stdtime/getdate.c Libc-1725.40.4 Libc-498
--- Libc/Libc-1725.40.4/stdtime/getdate.c
+++ Libc/Libc-498/stdtime/getdate.c
@@ -242,17 +242,14 @@
 			getdate_err = INVALID_DATE;
 			break;
 		}
-		if(wday_set != UNDEFINED &&
-			(dateset != (TM_YEAR_SET | TM_MON_SET | TM_MDAY_SET))) {
-		    /*
-		     * We got back a week day, but not enough information to resolve it
-		     * to a specific day, so we need to push forward the time to the
-		     * correct wday.  <rdar://problem/27439823>
-		     */
+		if(wday_set != UNDEFINED) {
 		    int delta = wday_set - tm.tm_wday;
-		    if(delta < 0) {
+		    if(delta && (dateset & TM_MDAY_SET)) {
+			getdate_err = INVALID_DATE;
+			break;
+		    }
+		    if(delta < 0)
 			delta += 7;
-		    }
 		    tm.tm_mday += delta;
 		    if(mktime(&tm) == (time_t)-1) {
 			getdate_err = INVALID_DATE;