From 9bd36ef2f71f54ca4fdfb5fc6c67b38f0db00398 Mon Sep 17 00:00:00 2001 From: Henrik Baard Date: Tue, 9 Jul 2013 15:14:23 +0200 Subject: [PATCH] Structure device not freed in error case In case of an error in the call usb_device_get_fd() the memory created by usb_open_device() is never freed. Added a call to usb_device_close in case of error to release the allocated memory. Change-Id: Iaa83674f000242d80604dd30c782236f7afd90c2 --- services/jni/com_android_server_UsbHostManager.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/services/jni/com_android_server_UsbHostManager.cpp b/services/jni/com_android_server_UsbHostManager.cpp index f1fa6cf07f604..fc6de60dbf5ec 100644 --- a/services/jni/com_android_server_UsbHostManager.cpp +++ b/services/jni/com_android_server_UsbHostManager.cpp @@ -163,8 +163,10 @@ static jobject android_server_UsbHostManager_openDevice(JNIEnv *env, jobject thi return NULL; int fd = usb_device_get_fd(device); - if (fd < 0) + if (fd < 0) { + usb_device_close(device); return NULL; + } int newFD = dup(fd); usb_device_close(device);