[haiku-commits] haiku: hrev43598 - src/kits/media

  • From: stpere@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 2 Jan 2012 20:32:09 +0100 (CET)

hrev43598 adds 1 changeset to branch 'master'
old head: e9132cc34c92f48eb61991047e030fef42a2e6fa
new head: 9e4224613c08b1bd53f1898357bcef938a788a20

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

9e42246: SoundFile.cpp: do a NULL check before deferencing.
  
  CID 296.

                                [ Philippe Saint-Pierre <stpere@xxxxxxxxx> ]

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

Revision:    hrev43598
Commit:      9e4224613c08b1bd53f1898357bcef938a788a20
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9e42246
Author:      Philippe Saint-Pierre <stpere@xxxxxxxxx>
Date:        Mon Jan  2 19:26:07 2012 UTC

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

1 files changed, 20 insertions(+), 16 deletions(-)
src/kits/media/SoundFile.cpp |   36 ++++++++++++++++++++----------------

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

diff --git a/src/kits/media/SoundFile.cpp b/src/kits/media/SoundFile.cpp
index a3ab9f7..8a03716 100644
--- a/src/kits/media/SoundFile.cpp
+++ b/src/kits/media/SoundFile.cpp
@@ -310,7 +310,7 @@ status_t
 BSoundFile::_ref_to_file(const entry_ref *ref)
 {
        status_t status;
-       BFile * file = new BFile(ref,B_READ_ONLY);
+       BFile * file = new BFile(ref, B_READ_ONLY);
        status = file->InitCheck();
        if (status != B_OK) {
                fSoundFile = file;
@@ -326,9 +326,9 @@ BSoundFile::_ref_to_file(const entry_ref *ref)
        media_file_format mfi;
        media->GetFileFormatInfo(&mfi);
        switch (mfi.family) {
-       case B_AIFF_FORMAT_FAMILY: fFileFormat = B_AIFF_FILE; break;
-       case B_WAV_FORMAT_FAMILY:  fFileFormat = B_WAVE_FILE; break;
-       default:                fFileFormat = B_UNKNOWN_FILE; break;
+               case B_AIFF_FORMAT_FAMILY: fFileFormat = B_AIFF_FILE; break;
+               case B_WAV_FORMAT_FAMILY:  fFileFormat = B_WAVE_FILE; break;
+               default:                fFileFormat = B_UNKNOWN_FILE; break;
        }
        int trackNum = 0;
        BMediaTrack * track = 0;
@@ -353,29 +353,33 @@ BSoundFile::_ref_to_file(const entry_ref *ref)
                delete file;
                return B_ERROR;
        }
-       media_raw_audio_format * raw = 0;       
+       media_raw_audio_format * raw = 0;
        if (mf.type == B_MEDIA_ENCODED_AUDIO) {
                raw = &mf.u.encoded_audio.output;
        }
        if (mf.type == B_MEDIA_RAW_AUDIO) {
                raw = &mf.u.raw_audio;
        }
+
+       if (raw == NULL)
+               return B_ERROR;
+
        fSamplingRate = (int)raw->frame_rate;
        fChannelCount = raw->channel_count;
        fSampleSize = raw->format & 0xf;
        fByteOrder = raw->byte_order;
        switch (raw->format) {
-       case media_raw_audio_format::B_AUDIO_FLOAT: 
-               fSampleFormat = B_FLOAT_SAMPLES;
-               break;
-       case media_raw_audio_format::B_AUDIO_INT:
-       case media_raw_audio_format::B_AUDIO_SHORT: 
-       case media_raw_audio_format::B_AUDIO_UCHAR:
-       case media_raw_audio_format::B_AUDIO_CHAR:
-               fSampleFormat = B_LINEAR_SAMPLES;
-               break;
-       default:
-               fSampleFormat = B_UNDEFINED_SAMPLES;
+               case media_raw_audio_format::B_AUDIO_FLOAT: 
+                       fSampleFormat = B_FLOAT_SAMPLES;
+                       break;
+               case media_raw_audio_format::B_AUDIO_INT:
+               case media_raw_audio_format::B_AUDIO_SHORT: 
+               case media_raw_audio_format::B_AUDIO_UCHAR:
+               case media_raw_audio_format::B_AUDIO_CHAR:
+                       fSampleFormat = B_LINEAR_SAMPLES;
+                       break;
+               default:
+                       fSampleFormat = B_UNDEFINED_SAMPLES;
        }
        fByteOffset = 0;
        fFrameCount = track->CountFrames();


Other related posts:

  • » [haiku-commits] haiku: hrev43598 - src/kits/media - stpere