hwkey, keyboard: modified defects 48/15448/2
authorsungmin ha <sungmin82.ha@samsung.com>
Tue, 21 Jan 2014 09:39:22 +0000 (18:39 +0900)
committersungmin ha <sungmin82.ha@samsung.com>
Wed, 22 Jan 2014 07:11:52 +0000 (16:11 +0900)
1. missing lock
2. null checking
3. uninitialized scalar variable

Change-Id: Ib84e9592ecae4cf6682c183245eb60f61ed77242
Signed-off-by: sungmin ha <sungmin82.ha@samsung.com>
package/changelog
package/pkginfo.manifest
tizen/src/hw/maru_virtio_hwkey.c
tizen/src/hw/maru_virtio_keyboard.c

index 4f2e9883340e250d8ab32777125d5628cd7d2c6f..0647911c075f9aefd0bc2bc04a05838a2b6e2d52 100644 (file)
@@ -1,3 +1,6 @@
+* 1.7.18
+- modified prevent defects in hwkey, keyboard
+== SungMin Ha <sungmin82.ha@samsung.com> 2014-01-21
 * 1.7.17
 - removed platform information of install dependency in emulator-qemu-x86
 == SungMin Ha <sungmin82.ha@samsung.com> 2014-01-20
index 204150d80e177b11d501aefed3d05089cab5f310..6d9574fe1d3f80547f7b64a9de6b44297c4e2006 100644 (file)
@@ -1,4 +1,4 @@
-Version: 1.7.17
+Version: 1.7.18
 Maintainer: Yeong-Kyoon Lee<yeongkyoon.lee@samsung.com>
 Source: emulator
 
index 907f28f8d147f2642e20126a4dab90e2dbbd9659..452425533dd566709afb928fa4cfecdb10836c7e 100644 (file)
@@ -193,19 +193,22 @@ static int virtio_hwkey_device_init(VirtIODevice *vdev)
     DeviceState *qdev = DEVICE(vdev);
     vhk = VIRTIO_HWKEY(vdev);
 
-    virtio_init(vdev, TYPE_VIRTIO_HWKEY, VIRTIO_ID_HWKEY, 0);
-
     if (vdev == NULL) {
         ERR("failed to initialize the hwkey device\n");
         return -1;
     }
 
+    virtio_init(vdev, TYPE_VIRTIO_HWKEY, VIRTIO_ID_HWKEY, 0);
+
     vhk->vq = virtio_add_queue(vdev, MAX_BUF_COUNT, maru_virtio_hwkey_handle);
 
     vhk->qdev = qdev;
 
     /* reset the counters */
+    pthread_mutex_lock(&event_mutex);
     event_queue_cnt = event_ringbuf_cnt = 0;
+    pthread_mutex_unlock(&event_mutex);
+
     elem_queue_cnt = elem_ringbuf_cnt = 0;
 
     /* bottom-half */
index 3e2bc3bdf3e655fe3e6977ec93db1e1e2be5b784..1d3d417951bd1c4de41c1f8e1322ff989d325b67 100644 (file)
@@ -112,7 +112,7 @@ void virtio_keyboard_notify(void *opaque)
 
 static void virtio_keyboard_event(void *opaque, int keycode)
 {
-    EmulKbdEvent kbdevt;
+    EmulKbdEvent kbdevt = {0};
     int *index = NULL;
     VirtIOKeyboard *vkbd = (VirtIOKeyboard *)opaque;
 
@@ -231,13 +231,14 @@ static int virtio_keyboard_device_init(VirtIODevice *vdev)
     vkbd = VIRTIO_KEYBOARD(vdev);
 
     INFO("initialize virtio-keyboard device\n");
-    virtio_init(vdev, TYPE_VIRTIO_KEYBOARD, VIRTIO_ID_KEYBOARD, 0);
 
     if (vdev == NULL) {
-        ERR("failed to initialize device\n");
+        ERR("failed to initialize virtio-keyboard device\n");
         return -1;
     }
 
+    virtio_init(vdev, TYPE_VIRTIO_KEYBOARD, VIRTIO_ID_KEYBOARD, 0);
+
     memset(&vkbd->kbdqueue, 0x00, sizeof(vkbd->kbdqueue));
     vkbd->extension_key = 0;
     qemu_mutex_init(&vkbd->event_mutex);