[haiku-commits] haiku: hrev43464 - in src/add-ons/kernel/drivers: audio/ac97/sis7018 network/sis19x network/usb_davicom network/usb_asix

  • From: zharik@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sat, 10 Dec 2011 21:53:18 +0100 (CET)

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);
        }
 


Other related posts:

  • » [haiku-commits] haiku: hrev43464 - in src/add-ons/kernel/drivers: audio/ac97/sis7018 network/sis19x network/usb_davicom network/usb_asix - zharik