From patchwork Fri Jun 17 08:46:58 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joris Lijssens X-Patchwork-Id: 637633 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 3rXLMM3mn8z9t0c for ; Sun, 19 Jun 2016 14:18:23 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=u1dv1GTO; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id B5F89A7580; Sun, 19 Jun 2016 06:18:17 +0200 (CEST) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id q_3K2TqPhPCi; Sun, 19 Jun 2016 06:18:17 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id A95ABA7593; Sun, 19 Jun 2016 06:18:11 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 7B7A6A7548 for ; Fri, 17 Jun 2016 10:47:22 +0200 (CEST) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hTf4FhGJa4v7 for ; Fri, 17 Jun 2016 10:47:22 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from mail-wm0-f65.google.com (mail-wm0-f65.google.com [74.125.82.65]) by theia.denx.de (Postfix) with ESMTPS id 42C1BA7532 for ; Fri, 17 Jun 2016 10:47:17 +0200 (CEST) Received: by mail-wm0-f65.google.com with SMTP id 187so15003397wmz.1 for ; Fri, 17 Jun 2016 01:47:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=8PVxXstGWF3HZZZUKd3jMHjTdyGKHqx+1A6Eq1BvNyI=; b=u1dv1GTO5tapFvem2lV2BLiA3MGjGpFLlcgn0NEpluv5QJ2pBXS/qESTkiaIOMcjVP NoSVB2VjghDDLIlX36Ij6K0oaV/fPnWI+2XnHociBLFFSZl75GHOAf/Ao8oPv/rVuLgr AyXN9FwLHVDL73XJ7GO/Gwv/fyognG+btRzUKT3k9r+UBHNWWE+OZvYAPRldVV5ZsyZt OVUhyYlTn3tVEA+MgzJE6Y3ax/U8h1UZGOqmUN31DGYuZCZmSWKaNra01JaRSRDTDEqv sjedfYILJ3HWmdRQLuL+3J86O4u3OCBSeJJNHLEVufNVZn31zovJof5eHh1+xCNWVdAd noWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=8PVxXstGWF3HZZZUKd3jMHjTdyGKHqx+1A6Eq1BvNyI=; b=TwINzbxKE757m75/2yzBKEWVXPHcX0OeO2w3tp2+9du+5VHES0dG7HgzumxI1apWSm 0FTgL5asyAa/A7XXUryICE3tJHHwNv8ZmasLfUJ+bKCQp/GpAJ6CWHlr/F+JTjoTrFAZ pj254iwm86dnk4u5FlAlYuQWCRZafe0rzQ6LWth9qTF1yhpmHJy0RDowd5nFUNbYgyux vi+fG1R9jnj/3RFQiFoF9DUEA62i6K3MUfRpoeabcVRsyGJhucbZg+OsDkNszpRWfdaL arknq4Y/v6llWju+ceKLUJZuACWpWzJlATE2J7CEk+IwgDadqDjGIgXjBALZif+PGAQX aD4Q== X-Gm-Message-State: ALyK8tJm3TywIGrGQr8FUY3fqgLIAGgAY9Ryx75F9gSJffuhCmhNqmpmwYqHZNTWMqgHoQ== X-Received: by 10.28.154.144 with SMTP id c138mr1148375wme.63.1466153237531; Fri, 17 Jun 2016 01:47:17 -0700 (PDT) Received: from devws150.be.alcatel-lucent.com (alc112.alcatel.be. [195.207.101.112]) by smtp.gmail.com with ESMTPSA id bh7sm15609706wjb.22.2016.06.17.01.47.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 17 Jun 2016 01:47:16 -0700 (PDT) From: Joris Lijssens To: U-Boot Mailing List Date: Fri, 17 Jun 2016 10:46:58 +0200 Message-Id: <1466153218-973-1-git-send-email-joris.lijssens@gmail.com> X-Mailer: git-send-email 1.8.3.1 X-Mailman-Approved-At: Sun, 19 Jun 2016 06:18:06 +0200 Cc: Joris Lijssens Subject: [U-Boot] [PATCH] lib/lzo: bugfix when input data is not compressed X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" When the input data is not compressed at all, lzo1x_decompress_safe will fail, so call memcpy() instead. Signed-off-by: Joris Lijssens --- lib/lzo/lzo1x_decompress.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/lib/lzo/lzo1x_decompress.c b/lib/lzo/lzo1x_decompress.c index ebdf10b..ccc90b8 100644 --- a/lib/lzo/lzo1x_decompress.c +++ b/lib/lzo/lzo1x_decompress.c @@ -98,18 +98,25 @@ int lzop_decompress(const unsigned char *src, size_t src_len, if (dlen > remaining) return LZO_E_OUTPUT_OVERRUN; - /* decompress */ - tmp = dlen; - r = lzo1x_decompress_safe((u8 *) src, slen, dst, &tmp); + /* When the input data is not compressed at all, + * lzo1x_decompress_safe will fail, so call memcpy() + * instead */ + if (dlen == slen) { + memcpy(dst, src, slen); + } else { + /* decompress */ + tmp = dlen; + r = lzo1x_decompress_safe((u8 *)src, slen, dst, &tmp); + + if (r != LZO_E_OK) { + *dst_len = dst - start; + return r; + } - if (r != LZO_E_OK) { - *dst_len = dst - start; - return r; + if (dlen != tmp) + return LZO_E_ERROR; } - if (dlen != tmp) - return LZO_E_ERROR; - src += slen; dst += dlen; remaining -= dlen;