hrev43464 adds 1 changeset to branch 'master' old head: e339322a8832789595ce9747116157f9a0d18b68 new head: eed9bc771c5006dfadc394555b5f4ed653ab80de ---------------------------------------------------------------------------- eed9bc7: Use "strlcpy" instead of "strncpy" and other Coverity issues * Yet more nice way to fix Coverity issues fixed by hrev43460. Thanks Rene Gollent for pointing it out! * Potential Coverity issues fixed for sis19x driver too. [ Siarzhuk Zharski <zharik@xxxxxx> ] ---------------------------------------------------------------------------- Revision: hrev43464 Commit: eed9bc771c5006dfadc394555b5f4ed653ab80de URL: http://cgit.haiku-os.org/haiku/commit/?id=eed9bc7 Author: Siarzhuk Zharski <zharik@xxxxxx> Date: Sat Dec 10 20:47:39 2011 UTC ---------------------------------------------------------------------------- 6 files changed, 17 insertions(+), 12 deletions(-) .../kernel/drivers/audio/ac97/sis7018/Device.cpp | 6 +++--- .../kernel/drivers/audio/ac97/sis7018/Mixer.cpp | 5 +++-- .../kernel/drivers/audio/ac97/sis7018/Settings.cpp | 2 +- .../kernel/drivers/network/sis19x/Settings.cpp | 12 ++++++++---- .../kernel/drivers/network/usb_asix/Settings.cpp | 2 +- .../drivers/network/usb_davicom/Settings.cpp | 2 +- ---------------------------------------------------------------------------- diff --git a/src/add-ons/kernel/drivers/audio/ac97/sis7018/Device.cpp b/src/add-ons/kernel/drivers/audio/ac97/sis7018/Device.cpp index c54fb28..e432ec8 100644 --- a/src/add-ons/kernel/drivers/audio/ac97/sis7018/Device.cpp +++ b/src/add-ons/kernel/drivers/audio/ac97/sis7018/Device.cpp @@ -337,10 +337,10 @@ Device::_MultiGetDescription(multi_description *multiDescription) Description.interface_version = B_CURRENT_INTERFACE_VERSION; Description.interface_minimum = B_CURRENT_INTERFACE_VERSION; - strncpy(Description.friendly_name, fInfo.Name(), - sizeof(Description.friendly_name) - 1); + strlcpy(Description.friendly_name, fInfo.Name(), + sizeof(Description.friendly_name)); - strncpy(Description.vendor_info, "Haiku.Inc.", + strlcpy(Description.vendor_info, "Haiku.Inc.", sizeof(Description.vendor_info)); Description.output_channel_count = 2; diff --git a/src/add-ons/kernel/drivers/audio/ac97/sis7018/Mixer.cpp b/src/add-ons/kernel/drivers/audio/ac97/sis7018/Mixer.cpp index 16cf0ea..242643e 100644 --- a/src/add-ons/kernel/drivers/audio/ac97/sis7018/Mixer.cpp +++ b/src/add-ons/kernel/drivers/audio/ac97/sis7018/Mixer.cpp @@ -478,7 +478,7 @@ Mixer::_CreateMIXControlGroup(multi_mix_control_info* MultiInfo, int32& index, Controls[index].string = Info.fNameId; if (Info.fName != NULL) strlcpy(Controls[index].name, Info.fName, - sizeof(Controls[index].name) - 1); + sizeof(Controls[index].name)); index++; if (Info.fType & MIX_Mute) { @@ -549,7 +549,8 @@ Mixer::_CreateMIXControlGroup(multi_mix_control_info* MultiInfo, int32& index, Controls[index].flags = B_MULTI_MIX_MUX; Controls[index].parent = groupIndex; Controls[index].string = S_null; - strlcpy(Controls[index].name, Info.fExName, sizeof(Controls[index].name)); + strlcpy(Controls[index].name, Info.fExName, + sizeof(Controls[index].name)); TRACE("MUX:%#010x\n", Controls[index].id); index++; diff --git a/src/add-ons/kernel/drivers/audio/ac97/sis7018/Settings.cpp b/src/add-ons/kernel/drivers/audio/ac97/sis7018/Settings.cpp index 9e2f327..52cfd55 100644 --- a/src/add-ons/kernel/drivers/audio/ac97/sis7018/Settings.cpp +++ b/src/add-ons/kernel/drivers/audio/ac97/sis7018/Settings.cpp @@ -79,7 +79,7 @@ void SiS7018_trace(bool force, const char* func, const char *fmt, ...) static char buffer[1024]; char *buf_ptr = buffer; if (gLogFilePath == NULL) { - strncpy(buffer, prefix, sizeof(buffer) - 1); + strlcpy(buffer, prefix, sizeof(buffer)); buf_ptr += strlen(prefix); } diff --git a/src/add-ons/kernel/drivers/network/sis19x/Settings.cpp b/src/add-ons/kernel/drivers/network/sis19x/Settings.cpp index 78413a2..bace1fe 100644 --- a/src/add-ons/kernel/drivers/network/sis19x/Settings.cpp +++ b/src/add-ons/kernel/drivers/network/sis19x/Settings.cpp @@ -35,7 +35,9 @@ void create_log() return; int flags = O_WRONLY | O_CREAT | ((gTruncateLogFile) ? O_TRUNC : 0); - close(open(gLogFilePath, flags, 0666)); + int fd = open(gLogFilePath, flags, 0666); + if (fd > 0) + close(fd); mutex_init(&gLogLock, DRIVER_NAME"-logging"); } @@ -91,7 +93,7 @@ void SiS19X_trace(bool force, const char* func, const char *fmt, ...) static char buffer[1024]; char *buf_ptr = buffer; if (gLogFilePath == NULL) { - strcpy(buffer, prefix); + strlcpy(buffer, prefix, sizeof(buffer)); buf_ptr += strlen(prefix); } @@ -120,8 +122,10 @@ void SiS19X_trace(bool force, const char* func, const char *fmt, ...) mutex_lock(&gLogLock); int fd = open(gLogFilePath, O_WRONLY | O_APPEND); - write(fd, buffer, strlen(buffer)); - close(fd); + if (fd > 0) { + write(fd, buffer, strlen(buffer)); + close(fd); + } mutex_unlock(&gLogLock); } diff --git a/src/add-ons/kernel/drivers/network/usb_asix/Settings.cpp b/src/add-ons/kernel/drivers/network/usb_asix/Settings.cpp index ac70f69..467cd51 100644 --- a/src/add-ons/kernel/drivers/network/usb_asix/Settings.cpp +++ b/src/add-ons/kernel/drivers/network/usb_asix/Settings.cpp @@ -88,7 +88,7 @@ void usb_asix_trace(bool force, const char* func, const char *fmt, ...) static char buffer[1024]; char *buf_ptr = buffer; if (gLogFilePath == NULL) { - strncpy(buffer, prefix, sizeof(buffer) - 1); + strlcpy(buffer, prefix, sizeof(buffer)); buf_ptr += strlen(prefix); } diff --git a/src/add-ons/kernel/drivers/network/usb_davicom/Settings.cpp b/src/add-ons/kernel/drivers/network/usb_davicom/Settings.cpp index fffe2ca..6cd24e7 100644 --- a/src/add-ons/kernel/drivers/network/usb_davicom/Settings.cpp +++ b/src/add-ons/kernel/drivers/network/usb_davicom/Settings.cpp @@ -95,7 +95,7 @@ void usb_davicom_trace(bool force, const char* func, const char *fmt, ...) static char buffer[1024]; char *buf_ptr = buffer; if (gLogFilePath == NULL) { - strncpy(buffer, prefix, sizeof(buffer) - 1); + strlcpy(buffer, prefix, sizeof(buffer)); buf_ptr += strlen(prefix); }