epson: don't leak memory if realloc() fails

This commit is contained in:
Nils Philippsen 2013-11-07 14:59:58 +01:00
parent 6ef393bf23
commit b96345062f
2 changed files with 22 additions and 8 deletions

View File

@ -1,4 +1,4 @@
From fc5281af7dad490171933ca706a7c34c891269b5 Mon Sep 17 00:00:00 2001
From 886208261b5b91b4a64efd8a203873ab85a07a2e Mon Sep 17 00:00:00 2001
From: Nils Philippsen <nils@redhat.com>
Date: Thu, 7 Nov 2013 12:48:23 +0100
Subject: [PATCH] patch: static-code-check
@ -7,6 +7,14 @@ Fix problems found during static code check (Coverity).
Squashed commit of the following:
commit e24cea3bceb5dad2042dcd95f582d6c8acf4c9ee
Author: Nils Philippsen <nils@redhat.com>
Date: Thu Nov 7 14:29:28 2013 +0100
epson: don't leak memory if realloc() fails
(cherry picked from commit d835d9d565118d52c2339c2e79890f57d0616077)
commit b0c14b86210c7615ea4d90723722a7430b175ae2
Author: Nils Philippsen <nils@redhat.com>
Date: Wed Nov 6 11:05:58 2013 +0100
@ -119,7 +127,7 @@ Date: Tue Nov 5 11:39:56 2013 +0100
(cherry picked from commit 56104b5329076d45caf2e04a2271f40a2699f71f)
---
backend/epson.c | 34 +++++++++++++++++++----------
backend/epson.c | 36 +++++++++++++++++++++----------
backend/genesys.c | 9 +++++---
backend/genesys_devices.c | 3 +++
backend/genesys_gl124.c | 21 ++++++++++++++++--
@ -132,10 +140,10 @@ Date: Tue Nov 5 11:39:56 2013 +0100
backend/rts8891.c | 16 ++++++--------
sanei/sanei_usb.c | 2 --
tools/sane-find-scanner.c | 2 --
13 files changed, 139 insertions(+), 69 deletions(-)
13 files changed, 141 insertions(+), 69 deletions(-)
diff --git a/backend/epson.c b/backend/epson.c
index 2cae65a..08f1401 100644
index 2cae65a..3b063b9 100644
--- a/backend/epson.c
+++ b/backend/epson.c
@@ -818,6 +818,12 @@ typedef struct
@ -169,7 +177,7 @@ index 2cae65a..08f1401 100644
command (Epson_Scanner * s, u_char * cmd, size_t cmd_size,
SANE_Status * status)
{
+ EpsonHdrUnion hdrunion;
+ EpsonHdrUnion hdrunion, hdrunion_bak;
EpsonHdr head;
u_char *buf;
int count;
@ -206,7 +214,7 @@ index 2cae65a..08f1401 100644
DBG (4, "code %02x\n", (int) head->code);
@@ -1921,25 +1930,28 @@ command (Epson_Scanner * s, u_char * cmd, size_t cmd_size,
@@ -1921,25 +1930,30 @@ command (Epson_Scanner * s, u_char * cmd, size_t cmd_size,
}
if (SANE_STATUS_GOOD != *status)
@ -219,9 +227,11 @@ index 2cae65a..08f1401 100644
DBG (4, "count %d\n", count);
- if (NULL == (head = realloc (head, sizeof (EpsonHdrRec) + count)))
+ hdrunion_bak = hdrunion;
+ if (NULL == (hdrunion = realloc (hdrunion,
+ sizeof (EpsonHdrUnionRec) + count)))
{
+ free(hdrunion_bak);
DBG (1, "out of memory (line %d)\n", __LINE__);
*status = SANE_STATUS_NO_MEM;
- return (EpsonHdr) 0;
@ -239,7 +249,7 @@ index 2cae65a..08f1401 100644
break;
@@ -1953,7 +1965,7 @@ command (Epson_Scanner * s, u_char * cmd, size_t cmd_size,
@@ -1953,7 +1967,7 @@ command (Epson_Scanner * s, u_char * cmd, size_t cmd_size,
break;
}

View File

@ -37,7 +37,7 @@
Summary: Scanner access software
Name: sane-backends
Version: 1.0.24
Release: 5%{?dist}
Release: 6%{?dist}
# lib/ is LGPLv2+, backends are GPLv2+ with exceptions
# Tools are GPLv2+, docs are public domain
# see LICENSE for details
@ -71,6 +71,7 @@ Patch5: sane-backends-1.0.24-pixma_bjnp-crash.patch
# Upstream commit 602d6ecdfe5f3146867799fabf3ac87582c26461
# Upstream commit 5d7f7ffefb22e7e64789e97af0356b7859d61814
# Upstream commit dc76e7cce464f04e46aab2bb0c269b4742161c59
# Upstream commit d835d9d565118d52c2339c2e79890f57d0616077
Patch6: sane-backends-1.0.24-static-code-check.patch
URL: http://www.sane-project.org
@ -308,6 +309,9 @@ udevadm hwdb --update >/dev/null 2>&1 || :
%{_libdir}/sane/*gphoto2.so*
%changelog
* Thu Nov 07 2013 Nils Philippsen <nils@redhat.com> - 1.0.24-6
- epson: don't leak memory if realloc() fails
* Thu Nov 07 2013 Nils Philippsen <nils@redhat.com> - 1.0.24-5
- fix issues found during static code check