From a188dae8be1051aea88459b4c4eb1e3f98b6cff1 Mon Sep 17 00:00:00 2001 From: Siarzhuk Zharski Date: Sat, 10 Dec 2011 19:02:36 +0100 Subject: [PATCH] Fixing Coverity issues. No functional changes CID 3490 CID 3491 CID 8928 CID 10630 CID 10631 CID 10664 CID 10731 CID 10754 CID 11049 CID 11141 CID 11147 CID 11148 --- .../kernel/drivers/audio/ac97/sis7018/Device.cpp | 2 +- .../kernel/drivers/audio/ac97/sis7018/Mixer.cpp | 3 ++- .../kernel/drivers/audio/ac97/sis7018/Settings.cpp | 12 ++++++++---- .../kernel/drivers/audio/ac97/sis7018/Stream.cpp | 3 +++ .../kernel/drivers/network/usb_asix/ASIXDevice.cpp | 2 ++ .../kernel/drivers/network/usb_asix/Settings.cpp | 12 ++++++++---- .../drivers/network/usb_davicom/DavicomDevice.cpp | 2 ++ .../kernel/drivers/network/usb_davicom/Settings.cpp | 12 ++++++++---- 8 files changed, 34 insertions(+), 14 deletions(-) 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 816c81a44e..c54fb282c1 100644 --- a/src/add-ons/kernel/drivers/audio/ac97/sis7018/Device.cpp +++ b/src/add-ons/kernel/drivers/audio/ac97/sis7018/Device.cpp @@ -338,7 +338,7 @@ Device::_MultiGetDescription(multi_description *multiDescription) Description.interface_minimum = B_CURRENT_INTERFACE_VERSION; strncpy(Description.friendly_name, fInfo.Name(), - sizeof(Description.friendly_name)); + sizeof(Description.friendly_name) - 1); strncpy(Description.vendor_info, "Haiku.Inc.", sizeof(Description.vendor_info)); 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 767b9e6041..16cf0eaf60 100644 --- a/src/add-ons/kernel/drivers/audio/ac97/sis7018/Mixer.cpp +++ b/src/add-ons/kernel/drivers/audio/ac97/sis7018/Mixer.cpp @@ -477,7 +477,8 @@ Mixer::_CreateMIXControlGroup(multi_mix_control_info* MultiInfo, int32& index, Controls[index].parent = parentIndex; Controls[index].string = Info.fNameId; if (Info.fName != NULL) - strlcpy(Controls[index].name, Info.fName, sizeof(Controls[index].name)); + strlcpy(Controls[index].name, Info.fName, + sizeof(Controls[index].name) - 1); index++; if (Info.fType & MIX_Mute) { 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 ef02f6b996..9e2f327e8c 100644 --- a/src/add-ons/kernel/drivers/audio/ac97/sis7018/Settings.cpp +++ b/src/add-ons/kernel/drivers/audio/ac97/sis7018/Settings.cpp @@ -28,7 +28,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"); } @@ -77,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) { - strcpy(buffer, prefix); + strncpy(buffer, prefix, sizeof(buffer) - 1); buf_ptr += strlen(prefix); } @@ -106,8 +108,10 @@ void SiS7018_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/audio/ac97/sis7018/Stream.cpp b/src/add-ons/kernel/drivers/audio/ac97/sis7018/Stream.cpp index e377fadae2..cce12579be 100644 --- a/src/add-ons/kernel/drivers/audio/ac97/sis7018/Stream.cpp +++ b/src/add-ons/kernel/drivers/audio/ac97/sis7018/Stream.cpp @@ -10,6 +10,8 @@ #include "Stream.h" +#include + #include "Device.h" #include "Registers.h" #include "Settings.h" @@ -34,6 +36,7 @@ Stream::Stream(Device *device, bool isInput) fFormat.format = B_FMT_16BIT; fFormat.rate = B_SR_48000; fFormat.cvsr = _DecodeRate(fFormat.rate); + memset(fFormat._reserved_, 0, sizeof(fFormat._reserved_)); } diff --git a/src/add-ons/kernel/drivers/network/usb_asix/ASIXDevice.cpp b/src/add-ons/kernel/drivers/network/usb_asix/ASIXDevice.cpp index 3bc5b86b0a..e7781adbbe 100644 --- a/src/add-ons/kernel/drivers/network/usb_asix/ASIXDevice.cpp +++ b/src/add-ons/kernel/drivers/network/usb_asix/ASIXDevice.cpp @@ -67,6 +67,8 @@ ASIXDevice::ASIXDevice(usb_device device, DeviceInfo& deviceInfo) fIPG[1] = 0x0c; fIPG[2] = 0x12; + memset(&fMACAddress, 0, sizeof(fMACAddress)); + fNotifyReadSem = create_sem(0, DRIVER_NAME"_notify_read"); if (fNotifyReadSem < B_OK) { TRACE_ALWAYS("Error of creating read notify semaphore:%#010x\n", 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 71ceb5b99f..ac70f6970c 100644 --- a/src/add-ons/kernel/drivers/network/usb_asix/Settings.cpp +++ b/src/add-ons/kernel/drivers/network/usb_asix/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"); } @@ -86,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) { - strcpy(buffer, prefix); + strncpy(buffer, prefix, sizeof(buffer) - 1); buf_ptr += strlen(prefix); } @@ -115,8 +117,10 @@ void usb_asix_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_davicom/DavicomDevice.cpp b/src/add-ons/kernel/drivers/network/usb_davicom/DavicomDevice.cpp index e816da5b6c..8cff098f32 100644 --- a/src/add-ons/kernel/drivers/network/usb_davicom/DavicomDevice.cpp +++ b/src/add-ons/kernel/drivers/network/usb_davicom/DavicomDevice.cpp @@ -118,6 +118,8 @@ DavicomDevice::DavicomDevice(usb_device device, DeviceInfo& deviceInfo) { fDeviceInfo = deviceInfo; + memset(&fMACAddress, 0, sizeof(fMACAddress)); + fNotifyReadSem = create_sem(0, DRIVER_NAME"_notify_read"); if (fNotifyReadSem < B_OK) { TRACE_ALWAYS("Error of creating read notify semaphore:%#010x\n", 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 028843f1cc..fffe2caa2e 100644 --- a/src/add-ons/kernel/drivers/network/usb_davicom/Settings.cpp +++ b/src/add-ons/kernel/drivers/network/usb_davicom/Settings.cpp @@ -36,7 +36,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"); } @@ -93,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) { - strcpy(buffer, prefix); + strncpy(buffer, prefix, sizeof(buffer) - 1); buf_ptr += strlen(prefix); } @@ -122,8 +124,10 @@ void usb_davicom_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); }