Page MenuHomeFreeBSD

Always null-terminate CAM periph_name and dev_name
ClosedPublic

Authored by asomers on Nov 22 2017, 6:12 PM.

Details

Summary

Always null-terminate CAM periph_name and dev_name

Reported by: Coverity
CID: 1010039, 1010040, 1010041, 1010043

Test Plan

camlib tests, basic camcontrol commands

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 12948
Build 13207: arc lint + arc unit

Event Timeline

I didn't tag all the places that need it, but I'd be tempted to go with sizeof(dst) rather than a #define that may or may not be right and requires extra brain power to go check for each case.

Even w/o it, the change is an improvement.

sys/cam/cam_xpt.c
690

this actually did NUL terminate. It wasn't safe though. I'd make a note of the migration from the unsafe / hard-to-user interfaces to the strl interfaces in the commit.

691

the traditional thing here is 'sizeof(ccb->cgdl.periph_name)' instead of some random #define that may be right or wrong. We know the CCBs preallocate so we don't have to worry about the pointer issue.

1760

Same sizeof comment for this argument.

This revision is now accepted and ready to land.Nov 22 2017, 6:26 PM

Looks good, assuming you put sizeof() in there.

sys/cam/cam_xpt.c
691

I agree with the sizeof() thing. That would be the better way to do it.

This revision was automatically updated to reflect the committed changes.