Fix issues detected by static analysis tool 91/87391/2
authorJihoon Kim <jihoon48.kim@samsung.com>
Wed, 7 Sep 2016 23:08:28 +0000 (08:08 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Wed, 7 Sep 2016 23:29:33 +0000 (08:29 +0900)
after having been compared to NULL value at ise-stt-mode.cpp:216, pointer 'vd' is dereferenced at ise-stt-mode.cpp:232.

Return value of a function 'operator new' is dereferenced at ise-stt-mode.cpp:225 without checking, but it is usually checked for this function (12/14).

Change-Id: I58c3d768c1ceb74160bc0b29e9f1b65366c59f09
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
src/ise-stt-mode.cpp

index bf2ed18..41c3461 100644 (file)
@@ -205,24 +205,27 @@ bool _app_stt_initialize(VoiceData *voice_data)
 {
     LOGD("_app_stt_initialize ");
     VoiceData *vd = (VoiceData *)voice_data;
+    if (!vd) return false;
 
     try {
-        if (vd != NULL && vd->sttmanager) {
+        if (vd->sttmanager) {
             vd->sttmanager->Cancel();
             delete vd->sttmanager;
             vd->sttmanager = NULL;
         }
 
-        if (vd != NULL && vd->sttfeedback) {
+        if (vd->sttfeedback) {
             delete vd->sttfeedback;
             vd->sttfeedback = NULL;
         }
 
         vd->sttfeedback = new is::stt::SttFeedback();
-        vd->sttfeedback->SetVoiceData(vd);
+        if (vd->sttfeedback)
+            vd->sttfeedback->SetVoiceData(vd);
 
         vd->sttmanager = new is::stt::SttManager(*(vd->sttfeedback));
-        vd->sttmanager->Prepare();
+        if (vd->sttmanager)
+            vd->sttmanager->Prepare();
     } catch(std::exception &e) {
         LOGD("%s", e.what());
         return false;