bug#79781: [BUG / Question] Potential use of uninitialized variables in copy_internal() in src/copy.c
Pádraig Brady <[email protected]> Fri, 7 Nov 2025 16:00:48 +0000
| Newsgroups | gmane.comp.gnu.core-utils.bugs |
|---|---|
| Message-ID | <[email protected]> |
tag 79781 notabug close 79781 stop Details below... On 07/11/2025 11:10, Ray steven wrote: > Hello Coreutils maintainers, > > I found a potential issue in the `copy_internal` function in `src/copy.c`. > > Issue Summary > ------------- > In lines 1641–1642, the variables `src_mode` and `dst_mode` are defined. > If `#ifdef lint` is not defined, these two variables are uninitialized. > > In the `else` branch at line 1693, they are also not explicitly > initialized, > but `src_mode` is used later at lines 1707 and 1745, among other places. > > It needs to be confirmed whether this constitutes using the variables > before they are initialized, which could lead to undefined behavior. > > Suggested Action > ---------------- > - Review the relevant code paths to ensure `src_mode` and `dst_mode` > are properly initialized before use. > - Consider initializing them at declaration to avoid undefined behavior: > > mode_t src_mode = 0; > mode_t dst_mode = 0; Static analysis tools should define lint with coreutils. If we've already tagged something with IF_LINT, then we've already analyzed it's use as OK. It's better to not initialize variables to non valid values, as then you lose the benefit of runtime UMR analysis. thanks, Padraig.