Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
liblzma: Always validate the first digit of a preset string
lzma_str_to_filters() may call parse_lzma12_preset() in two ways. The call from str_to_filters() detects the string type from the first character(s) and as a side-effect it validates the first digit of the preset string. So this change makes no difference there. However, the call from parse_options() doesn't pre-validate the string. parse_lzma12_preset() will return an invalid value which is passed to lzma_lzma_preset() which safely rejects it. The bug still affects the the error message: $ xz --filters=lzma2:preset=X xz: Error in --filters=FILTERS option: xz: lzma2:preset=X xz: ^ xz: Unsupported preset After the fix: $ xz --filters=lzma2:preset=X xz: Error in --filters=FILTERS option: xz: lzma2:preset=X xz: ^ xz: Unsupported preset The ^ now correctly points to the X and not past it because the X itself is the problematic character. Fixes: cedeeca
- Loading branch information