bug(date): when using the year `0000` with `EDT` will get normalized to LMT, and results an invalid date
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 24.1k
- Forks
- 2k
- Avg merge
- 1d 5h
- Merged PRs (30d)
- 365
Description
Hi, uutils mainteners
we identified a serious illogical bug in the uu date as we confirmed
relunsec@relunsec:~/software/coreutils/target/debug$ ./date -d "Jun 1 00:00:00 EDT 0000"
Wed May 31 11:03:58 PM LMT 0000
relunsec@relunsec:~/software/coreutils/target/debug$
the date is invalid and physically and historically not exist and outputted anyway, whiches a bug in the normalization interestingly
passing LMT directly to 0000 will be rejected by the uu date
relunsec@relunsec:~/software/coreutils/target/debug$ ./date -d "Jun 1 00:00:00 LMT 0000"
date: invalid date 'Jun 1 00:00:00 LMT 0000'
the problem here looks like after EDT normalized to LMT, then results on 0000 LMT whiches invalid, it is a problem in the normalization looks like
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the two ./date -d examples from the issue and compare the EDT and LMT handling for year 0000. Trace the date parsing and timezone-normalization entry points used by the date command; done means the invalid normalized date is rejected consistently without regressing valid timezone inputs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100