Commit Diff


commit - 493b97a4d9161bd28d498c3e18b42ca3fc7852b8
commit + 95456b2155b6f5979d1bf5056506a5b1e27183ee
blob - 80ca59cb9b13ea574277ac1f307a5ef3b691b498
blob + 16d113994866a2bb8c8412fa29e6a0824c718c84
--- src/cmd/upas/nfs/imap.c
+++ src/cmd/upas/nfs/imap.c
@@ -1009,16 +1009,18 @@ parsedate(Sx *v)
 		warn("bad date: %$", v);
 		return 0;
 	}
+	
+	/* cannot use atoi because 09 is malformed octal! */
 	memset(&tm, 0, sizeof tm);
 	p = v->data;
-	tm.mday = atoi(p);
+	tm.mday = strtol(p, 0, 10);
 	tm.mon = parsemon(p+3);
 	if(tm.mon == -1)
 		goto bad;
-	tm.year = atoi(p+7) - 1900;
-	tm.hour = atoi(p+12);
-	tm.min = atoi(p+15);
-	tm.sec = atoi(p+18);
+	tm.year = strtol(p+7, 0, 10) - 1900;
+	tm.hour = strtol(p+12, 0, 10);
+	tm.min = strtol(p+15, 0, 10);
+	tm.sec = strtol(p+18, 0, 10);
 	strcpy(tm.zone, "GMT");
 
 	t = tm2sec(&tm);