Message ID | 20201011200955.29992-1-trix@redhat.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | ptp: ptp_clockmatrix: initialize variables | expand |
On Sun, Oct 11, 2020 at 01:09:55PM -0700, trix@redhat.com wrote: > From: Tom Rix <trix@redhat.com> > > Clang static analysis reports this representative problem > > ptp_clockmatrix.c:1852:2: warning: 5th function call argument > is an uninitialized value > snprintf(idtcm->version, sizeof(idtcm->version), "%u.%u.%u", > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > idtcm_display_version_info() calls several idtcm_read_*'s without > checking a return status. So why not check the return status? Your patch papers over the issue. Thanks, Richard
On 10/12/20 3:01 PM, Richard Cochran wrote: > On Sun, Oct 11, 2020 at 01:09:55PM -0700, trix@redhat.com wrote: >> From: Tom Rix <trix@redhat.com> >> >> Clang static analysis reports this representative problem >> >> ptp_clockmatrix.c:1852:2: warning: 5th function call argument >> is an uninitialized value >> snprintf(idtcm->version, sizeof(idtcm->version), "%u.%u.%u", >> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> >> idtcm_display_version_info() calls several idtcm_read_*'s without >> checking a return status. > So why not check the return status? calling function is a print information only function that returns void. I do think not adding error handling is worth it. I could change the return and then the calls if if you like. Tom > > Your patch papers over the issue. > > Thanks, > Richard >
On Mon, Oct 12, 2020 at 09:07:30PM -0700, Tom Rix wrote: > calling function is a print information only function that returns void. That is fine. > I do think not adding error handling is worth it. > > I could change the return and then the calls if if you like. How about printing the version string when readable, and otherwise print an appropriate informative error message? Thanks, Richard
diff --git a/drivers/ptp/ptp_clockmatrix.c b/drivers/ptp/ptp_clockmatrix.c index e020faff7da5..47e5e62da5d2 100644 --- a/drivers/ptp/ptp_clockmatrix.c +++ b/drivers/ptp/ptp_clockmatrix.c @@ -1832,12 +1832,12 @@ static int idtcm_enable_tod(struct idtcm_channel *channel) static void idtcm_display_version_info(struct idtcm *idtcm) { - u8 major; - u8 minor; - u8 hotfix; - u16 product_id; - u8 hw_rev_id; - u8 config_select; + u8 major = 0; + u8 minor = 0; + u8 hotfix = 0; + u16 product_id = 0; + u8 hw_rev_id = 0; + u8 config_select = 0; char *fmt = "%d.%d.%d, Id: 0x%04x HW Rev: %d OTP Config Select: %d\n"; idtcm_read_major_release(idtcm, &major);