Fix an uninitialized variable

This commit is contained in:
Matthias Clasen 2009-12-10 00:43:56 +00:00
parent d6ed0da5aa
commit 533916af1f
2 changed files with 61 additions and 2 deletions

View File

@ -0,0 +1,52 @@
From 26f0cc57fcf346753f17e75fb1378f053dcba92c Mon Sep 17 00:00:00 2001
From: David Zeuthen <davidz@redhat.com>
Date: Wed, 9 Dec 2009 17:14:36 -0500
Subject: [PATCH] fix return of uninitialized variable
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
atasmart.c: In function init_smart:
atasmart.c:2556: warning: ret may be used uninitialized in this function
We apparently don't initialize the ret variable in init_smart() -
unfortunately
o this warning is never reported with using -O0 (thanks gcc -
see http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings though)
o we never run into this bug with just skdump(1)
The bug does show up in the udisks (aka DeviceKit-disks) use of
libatasmart and this patch fixes it.
Signed-off-by: David Zeuthen <davidz@redhat.com>
---
atasmart.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/atasmart.c b/atasmart.c
index 3ff0334..cf93819 100644
--- a/atasmart.c
+++ b/atasmart.c
@@ -2564,6 +2564,8 @@ static int init_smart(SkDisk *d) {
if (!disk_smart_is_available(d))
return 0;
+ ret = -1;
+
if (!disk_smart_is_enabled(d)) {
if ((ret = disk_smart_enable(d, TRUE)) < 0)
goto fail;
@@ -2580,6 +2582,8 @@ static int init_smart(SkDisk *d) {
disk_smart_read_thresholds(d);
+ ret = 0;
+
fail:
return ret;
}
--
1.6.5.5

View File

@ -1,6 +1,6 @@
Name: libatasmart Name: libatasmart
Version: 0.17 Version: 0.17
Release: 1%{?dist} Release: 2%{?dist}
Summary: ATA S.M.A.R.T. Disk Health Monitoring Library Summary: ATA S.M.A.R.T. Disk Health Monitoring Library
Group: System Environment/Libraries Group: System Environment/Libraries
Source0: http://0pointer.de/public/libatasmart-%{version}.tar.gz Source0: http://0pointer.de/public/libatasmart-%{version}.tar.gz
@ -9,8 +9,11 @@ Url: http://git.0pointer.de/?p=libatasmart.git;a=summary
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: libudev-devel BuildRequires: libudev-devel
# https://bugs.freedesktop.org/show_bug.cgi?id=25543
Patch0: libatasmart-uninitialized-var.patch
%description %description
A small and lightweight parser library for ATA S.M.A.R.T. hard disk A scmall and lightweight parser library for ATA S.M.A.R.T. hard disk
health monitoring. health monitoring.
%package devel %package devel
@ -28,6 +31,7 @@ Development Files for libatasmart Client Development
%prep %prep
%setup -q %setup -q
%patch0 -p1 -b .uninitialized-var.patch
%build %build
%configure --disable-static %configure --disable-static
@ -58,6 +62,9 @@ rm -rf $RPM_BUILD_ROOT
%doc blob-examples/SAMSUNG* blob-examples/ST* blob-examples/Maxtor* blob-examples/WDC* blob-examples/FUJITSU* blob-examples/INTEL* blob-examples/TOSHIBA* blob-examples/MCC* %doc blob-examples/SAMSUNG* blob-examples/ST* blob-examples/Maxtor* blob-examples/WDC* blob-examples/FUJITSU* blob-examples/INTEL* blob-examples/TOSHIBA* blob-examples/MCC*
%changelog %changelog
* Wed Dec 9 2009 Matthias Clasen <mclasen@redhat.com> - 0.17-2
- Fix an unitialized variable that causes problems in udisks
* Tue Oct 27 2009 Lennart Poettering <lpoetter@redhat.com> 0.17-1 * Tue Oct 27 2009 Lennart Poettering <lpoetter@redhat.com> 0.17-1
- New upstream release - New upstream release
- Fixes bug 491552 - Fixes bug 491552