From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48232) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WmiAC-0006kn-IZ for qemu-devel@nongnu.org; Tue, 20 May 2014 07:25:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WmiA0-0002Sw-G6 for qemu-devel@nongnu.org; Tue, 20 May 2014 07:24:56 -0400 Received: from mx1.redhat.com ([209.132.183.28]:17050) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WmiA0-0002SQ-9C for qemu-devel@nongnu.org; Tue, 20 May 2014 07:24:44 -0400 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s4KBOhxt027356 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 20 May 2014 07:24:43 -0400 From: Gerd Hoffmann Date: Tue, 20 May 2014 13:24:22 +0200 Message-Id: <1400585062-13260-3-git-send-email-kraxel@redhat.com> In-Reply-To: <1400585062-13260-1-git-send-email-kraxel@redhat.com> References: <1400585062-13260-1-git-send-email-kraxel@redhat.com> Subject: [Qemu-devel] [PATCH 3/3] usb-mtp: handle usb_mtp_get_object failure List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Gerd Hoffmann , "Dr. David Alan Gilbert" Cc: Dr. David Alan Gilbert Signed-off-by: Gerd Hoffmann --- hw/usb/dev-mtp.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/hw/usb/dev-mtp.c b/hw/usb/dev-mtp.c index a95298b..380b465 100644 --- a/hw/usb/dev-mtp.c +++ b/hw/usb/dev-mtp.c @@ -46,6 +46,7 @@ enum mtp_code { /* response codes */ RES_OK = 0x2001, + RES_GENERAL_ERROR = 0x2002, RES_SESSION_NOT_OPEN = 0x2003, RES_INVALID_TRANSACTION_ID = 0x2004, RES_OPERATION_NOT_SUPPORTED = 0x2005, @@ -828,7 +829,9 @@ static void usb_mtp_command(MTPState *s, MTPControl *c) } data_in = usb_mtp_get_object(s, c, o); if (NULL == data_in) { - fprintf(stderr, "%s: TODO: handle error\n", __func__); + usb_mtp_queue_result(s, RES_GENERAL_ERROR, + c->trans, 0, 0, 0); + return; } break; case CMD_GET_PARTIAL_OBJECT: @@ -845,7 +848,9 @@ static void usb_mtp_command(MTPState *s, MTPControl *c) } data_in = usb_mtp_get_partial_object(s, c, o); if (NULL == data_in) { - fprintf(stderr, "%s: TODO: handle error\n", __func__); + usb_mtp_queue_result(s, RES_GENERAL_ERROR, + c->trans, 0, 0, 0); + return; } nres = 1; res0 = data_in->length; -- 1.8.3.1