From 8bdbf77e2128f8b70f0506eb7018f65791dcccd3 Mon Sep 17 00:00:00 2001
From: chrfranke <chrfranke@4ea69e1a-61f1-4043-bf83-b5c94c648137>
Date: Fri, 10 Jul 2009 23:01:56 +0000
Subject: [PATCH] smartd: Fix size of monitor flag array from previous commit.

git-svn-id: https://smartmontools.svn.sourceforge.net/svnroot/smartmontools/trunk@2826 4ea69e1a-61f1-4043-bf83-b5c94c648137
---
 sm5/CHANGELOG  | 4 +++-
 sm5/smartd.cpp | 9 ++++-----
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/sm5/CHANGELOG b/sm5/CHANGELOG
index dc551db20..36078859d 100644
--- a/sm5/CHANGELOG
+++ b/sm5/CHANGELOG
@@ -1,6 +1,6 @@
 CHANGELOG for smartmontools
 
-$Id: CHANGELOG,v 1.821 2009/07/10 21:22:33 chrfranke Exp $
+$Id: CHANGELOG,v 1.822 2009/07/10 23:01:56 chrfranke Exp $
 
 The most recent version of this file is:
 http://smartmontools.cvs.sourceforge.net/smartmontools/sm5/CHANGELOG?view=markup
@@ -41,6 +41,8 @@ NOTES FOR FUTURE RELEASES: see TODO file.
 
 <DEVELOPERS: ADDITIONS TO THE CHANGE LOG GO JUST BELOW HERE, PLEASE>
 
+  [CF] smartd: Fix size of monitor flag array from previous commit.
+
   [CF] Makefile.am: Add missing 'megaraid.h'.
 
   [CF] smartd: Add '!' flag to '-r' and '-R' directives. If specified,
diff --git a/sm5/smartd.cpp b/sm5/smartd.cpp
index 69e8e38d7..f0f693d37 100644
--- a/sm5/smartd.cpp
+++ b/sm5/smartd.cpp
@@ -136,7 +136,7 @@ extern const char *os_solaris_ata_s_cvsid;
 #ifdef _WIN32
 extern const char *daemon_win32_c_cvsid, *hostname_win32_c_cvsid, *syslog_win32_c_cvsid;
 #endif
-const char *smartd_c_cvsid="$Id: smartd.cpp,v 1.450 2009/07/10 20:14:40 chrfranke Exp $"
+const char *smartd_c_cvsid="$Id: smartd.cpp,v 1.451 2009/07/10 23:01:56 chrfranke Exp $"
 ATACMDS_H_CVSID CONFIG_H_CVSID
 #ifdef DAEMON_WIN32_H_CVSID
 DAEMON_WIN32_H_CVSID
@@ -252,17 +252,16 @@ public:
     { memset(m_flags, 0, sizeof(m_flags)); }
 
   bool is_set(int id, unsigned char flag) const
-    { return (0 < id && id < NUMBER_ATA_SMART_ATTRIBUTES
-              && (m_flags[id] & flag)                   ); }
+    { return (0 < id && id < (int)sizeof(m_flags) && (m_flags[id] & flag)); }
 
   void set(int id, unsigned char flags)
     {
-      if (0 < id && id < NUMBER_ATA_SMART_ATTRIBUTES)
+      if (0 < id && id < (int)sizeof(m_flags))
         m_flags[id] |= flags;
     }
 
 private:
-  unsigned char m_flags[NUMBER_ATA_SMART_ATTRIBUTES];
+  unsigned char m_flags[256];
 };
 
 
-- 
GitLab