[haiku-commits] haiku: hrev48283 - src/add-ons/kernel/file_systems/cdda

  • From: pulkomandy@xxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 12 Nov 2014 09:39:39 +0100 (CET)

hrev48283 adds 1 changeset to branch 'master'
old head: 7b4084f717395bd88d3f7e21760619570252117e
new head: 735ca4068d0912990c5f900dc021733d4842599c
overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=735ca40+%5E7b4084f

----------------------------------------------------------------------------

735ca40: cdda: CID 610847: possibly uninitialized fields
  
  In two cases:
  * Out of memory and strdup on fName failed. Nothing would be
  initialized (mostly harmless: InitCheck would detect this)
  * There are no frames in the track: the wav header would be left
  uninitialized, and this would be readable from userland (bad thing, but
  needs a specifically crafted malicious CD to happen).

                                 [ Adrien Destugues <pulkomandy@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev48283
Commit:      735ca4068d0912990c5f900dc021733d4842599c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=735ca40
Author:      Adrien Destugues <pulkomandy@xxxxxxxxx>
Date:        Wed Nov 12 08:15:48 2014 UTC

----------------------------------------------------------------------------

1 file changed, 5 insertions(+), 3 deletions(-)
src/add-ons/kernel/file_systems/cdda/kernel_interface.cpp | 8 +++++---

----------------------------------------------------------------------------

diff --git a/src/add-ons/kernel/file_systems/cdda/kernel_interface.cpp 
b/src/add-ons/kernel/file_systems/cdda/kernel_interface.cpp
index 7d748ae..9d825b7 100644
--- a/src/add-ons/kernel/file_systems/cdda/kernel_interface.cpp
+++ b/src/add-ons/kernel/file_systems/cdda/kernel_interface.cpp
@@ -1165,9 +1165,7 @@ Inode::Inode(Volume* volume, Inode* parent, const char* 
name, uint64 start,
        :
        fNext(NULL)
 {
-       fName = strdup(name);
-       if (fName == NULL)
-               return;
+       memset(&fWAVHeader, 0, sizeof(wav_header));
 
        fID = volume->GetNextNodeID();
        fType = type;
@@ -1179,6 +1177,10 @@ Inode::Inode(Volume* volume, Inode* parent, const char* 
name, uint64 start,
 
        fCreationTime = fModificationTime = time(NULL);
 
+       fName = strdup(name);
+       if (fName == NULL)
+               return;
+
        if (frames) {
                // initialize WAV header
 


Other related posts:

  • » [haiku-commits] haiku: hrev48283 - src/add-ons/kernel/file_systems/cdda - pulkomandy