Fix overrun in lmsensor component. (rhbz797692)
This commit is contained in:
parent
4bb90afdf0
commit
c98dcf56a8
203
papi-bz797692.patch
Normal file
203
papi-bz797692.patch
Normal file
@ -0,0 +1,203 @@
|
|||||||
|
diff -up papi-4.2.1/src/components/lmsensors/linux-lmsensors.c.bz papi-4.2.1/src/components/lmsensors/linux-lmsensors.c
|
||||||
|
--- papi-4.2.1/src/components/lmsensors/linux-lmsensors.c.bz 2012-02-10 14:58:08.000000000 -0500
|
||||||
|
+++ papi-4.2.1/src/components/lmsensors/linux-lmsensors.c 2012-03-09 16:23:20.139608076 -0500
|
||||||
|
@@ -4,11 +4,11 @@
|
||||||
|
#include "papi_memory.h"
|
||||||
|
#include "linux-lmsensors.h"
|
||||||
|
|
||||||
|
+papi_vector_t _lmsensors_vector;
|
||||||
|
|
||||||
|
-
|
||||||
|
-/*******************************************************************************
|
||||||
|
- ******** BEGIN FUNCTIONS USED INTERNALLY SPECIFIC TO THIS COMPONENT *********
|
||||||
|
- ******************************************************************************/
|
||||||
|
+/******************************************************************************
|
||||||
|
+ ******** BEGIN FUNCTIONS USED INTERNALLY SPECIFIC TO THIS COMPONENT ********
|
||||||
|
+ *****************************************************************************/
|
||||||
|
/*
|
||||||
|
* Counts number of events available in this system
|
||||||
|
*/
|
||||||
|
@@ -50,72 +50,69 @@ createNativeEvents( void )
|
||||||
|
int chip_nr = 0;
|
||||||
|
const sensors_chip_name *chip_name;
|
||||||
|
|
||||||
|
- cmp_id_t component;
|
||||||
|
-
|
||||||
|
/* component name and description */
|
||||||
|
- strcpy( component.name, "LM_SENSORS" );
|
||||||
|
- strcpy( component.descr,
|
||||||
|
- "lm-sensors provides tools for monitoring the hardware health" );
|
||||||
|
+ strcpy( _lmsensors_vector.cmp_info.name, "LM_SENSORS" );
|
||||||
|
+ // strcpy( _lmsensors_vector.cmp_info.descr,
|
||||||
|
+ // "lm-sensors provides tools for monitoring the hardware health" );
|
||||||
|
|
||||||
|
|
||||||
|
/* Loop through all the chips found */
|
||||||
|
while ( ( chip_name =
|
||||||
|
sensors_get_detected_chips( NULL, &chip_nr ) ) != NULL ) {
|
||||||
|
- int a, b;
|
||||||
|
- const sensors_feature *feature;
|
||||||
|
- const sensors_subfeature *sub;
|
||||||
|
- char chipnamestring[PAPI_MIN_STR_LEN];
|
||||||
|
+ int a, b;
|
||||||
|
+ const sensors_feature *feature;
|
||||||
|
+ const sensors_subfeature *sub;
|
||||||
|
+ char chipnamestring[PAPI_MIN_STR_LEN];
|
||||||
|
|
||||||
|
- lm_sensors_native_table[id].count = 0;
|
||||||
|
+ // lm_sensors_native_table[id].count = 0;
|
||||||
|
|
||||||
|
/* get chip name from its internal representation */
|
||||||
|
- sensors_snprintf_chip_name( chipnamestring,
|
||||||
|
- PAPI_MIN_STR_LEN, chip_name );
|
||||||
|
+ sensors_snprintf_chip_name( chipnamestring,
|
||||||
|
+ PAPI_MIN_STR_LEN, chip_name );
|
||||||
|
|
||||||
|
- a = 0;
|
||||||
|
- /* Loop through all the features found */
|
||||||
|
- while ( ( feature = sensors_get_features( chip_name, &a ) ) ) {
|
||||||
|
- char *featurelabel;
|
||||||
|
+ a = 0;
|
||||||
|
+
|
||||||
|
+ /* Loop through all the features found */
|
||||||
|
+ while ( ( feature = sensors_get_features( chip_name, &a ) ) ) {
|
||||||
|
+ char *featurelabel;
|
||||||
|
|
||||||
|
- if ( !( featurelabel = sensors_get_label( chip_name, feature ) ) ) {
|
||||||
|
- fprintf( stderr, "ERROR: Can't get label of feature %s!\n",
|
||||||
|
+ if ( !( featurelabel = sensors_get_label( chip_name, feature ))) {
|
||||||
|
+ fprintf( stderr, "ERROR: Can't get label of feature %s!\n",
|
||||||
|
feature->name );
|
||||||
|
- continue;
|
||||||
|
- }
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- b = 0;
|
||||||
|
+ b = 0;
|
||||||
|
|
||||||
|
- /* Loop through all the subfeatures found */
|
||||||
|
- while ( ( sub =
|
||||||
|
- sensors_get_all_subfeatures( chip_name, feature,
|
||||||
|
- &b ) ) ) {
|
||||||
|
- count = 0;
|
||||||
|
+ /* Loop through all the subfeatures found */
|
||||||
|
+ while ((sub=sensors_get_all_subfeatures(chip_name,feature,&b))) {
|
||||||
|
|
||||||
|
- /* Save native event data */
|
||||||
|
- sprintf( lm_sensors_native_table[id].name,
|
||||||
|
- "%s.%s.%s.%s",
|
||||||
|
- component.name,
|
||||||
|
- chipnamestring, featurelabel, sub->name );
|
||||||
|
+ count = 0;
|
||||||
|
|
||||||
|
- strncpy( lm_sensors_native_table[id].description,
|
||||||
|
- lm_sensors_native_table[id].name, PAPI_MAX_STR_LEN );
|
||||||
|
+ /* Save native event data */
|
||||||
|
+ sprintf( lm_sensors_native_table[id].name, "%s.%s.%s.%s",
|
||||||
|
+ _lmsensors_vector.cmp_info.name,
|
||||||
|
+ chipnamestring, featurelabel, sub->name );
|
||||||
|
|
||||||
|
- /* The selector has to be !=0 . Starts with 1 */
|
||||||
|
- lm_sensors_native_table[id].resources.selector = id + 1;
|
||||||
|
+ strncpy( lm_sensors_native_table[id].description,
|
||||||
|
+ lm_sensors_native_table[id].name, PAPI_MAX_STR_LEN );
|
||||||
|
|
||||||
|
- /* Save the actual references to this event */
|
||||||
|
- lm_sensors_native_table[id].resources.name = chip_name;
|
||||||
|
- lm_sensors_native_table[id].resources.subfeat_nr = sub->number;
|
||||||
|
+ /* The selector has to be !=0 . Starts with 1 */
|
||||||
|
+ lm_sensors_native_table[id].resources.selector = id + 1;
|
||||||
|
|
||||||
|
- count = sub->number;
|
||||||
|
+ /* Save the actual references to this event */
|
||||||
|
+ lm_sensors_native_table[id].resources.name = chip_name;
|
||||||
|
+ lm_sensors_native_table[id].resources.subfeat_nr = sub->number;
|
||||||
|
|
||||||
|
- /* increment the table index counter */
|
||||||
|
- id++;
|
||||||
|
- }
|
||||||
|
+ count = sub->number;
|
||||||
|
|
||||||
|
- lm_sensors_native_table[id].count = count + 1;
|
||||||
|
- free( featurelabel );
|
||||||
|
- }
|
||||||
|
+ /* increment the table index counter */
|
||||||
|
+ id++;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ // lm_sensors_native_table[id].count = count + 1;
|
||||||
|
+ free( featurelabel );
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Return the number of events created */
|
||||||
|
@@ -179,6 +176,7 @@ LM_SENSORS_init_substrate( )
|
||||||
|
|
||||||
|
/* Create dyanmic events table */
|
||||||
|
NUM_EVENTS = detectSensors( );
|
||||||
|
+ //printf("Found %d sensors\n",NUM_EVENTS);
|
||||||
|
|
||||||
|
if ( ( lm_sensors_native_table =
|
||||||
|
( LM_SENSORS_native_event_entry_t * )
|
||||||
|
@@ -193,7 +191,7 @@ LM_SENSORS_init_substrate( )
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
- return ( PAPI_OK );
|
||||||
|
+ return PAPI_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -224,7 +222,8 @@ LM_SENSORS_start( hwd_context_t * ctx, h
|
||||||
|
{
|
||||||
|
( void ) ctx;
|
||||||
|
( void ) ctrl;
|
||||||
|
- return ( PAPI_OK );
|
||||||
|
+
|
||||||
|
+ return PAPI_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -235,8 +234,9 @@ int
|
||||||
|
LM_SENSORS_stop( hwd_context_t * ctx, hwd_control_state_t * ctrl )
|
||||||
|
{
|
||||||
|
( void ) ctx;
|
||||||
|
- ( void ) ctrl;
|
||||||
|
- return ( PAPI_OK );
|
||||||
|
+ ( void ) ctrl;
|
||||||
|
+
|
||||||
|
+ return PAPI_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -444,9 +444,8 @@ LM_SENSORS_ntv_code_to_bits( unsigned in
|
||||||
|
papi_vector_t _lmsensors_vector = {
|
||||||
|
.cmp_info = {
|
||||||
|
/* default component information (unspecified values are initialized to 0) */
|
||||||
|
- .name =
|
||||||
|
- "$Id: linux-lmsensors.c,v 1.6 2012/02/10 19:58:08 terpstra Exp $",
|
||||||
|
- .version = "$Revision: 1.6 $",
|
||||||
|
+ .name = "linux-lmsensors.c",
|
||||||
|
+ .version = "4.2.1",
|
||||||
|
.num_mpx_cntrs = PAPI_MPX_DEF_DEG,
|
||||||
|
.num_cntrs = LM_SENSORS_MAX_COUNTERS,
|
||||||
|
.default_domain = PAPI_DOM_USER,
|
||||||
|
@@ -489,5 +488,4 @@ papi_vector_t _lmsensors_vector = {
|
||||||
|
.ntv_enum_events = LM_SENSORS_ntv_enum_events,
|
||||||
|
.ntv_code_to_name = LM_SENSORS_ntv_code_to_name,
|
||||||
|
.ntv_code_to_bits = LM_SENSORS_ntv_code_to_bits,
|
||||||
|
- .ntv_bits_to_info = NULL,
|
||||||
|
};
|
||||||
|
diff -up papi-4.2.1/src/components/lmsensors/linux-lmsensors.h.bz papi-4.2.1/src/components/lmsensors/linux-lmsensors.h
|
||||||
|
--- papi-4.2.1/src/components/lmsensors/linux-lmsensors.h.bz 2012-02-09 10:02:53.000000000 -0500
|
||||||
|
+++ papi-4.2.1/src/components/lmsensors/linux-lmsensors.h 2012-03-09 15:57:31.393736053 -0500
|
||||||
|
@@ -4,7 +4,7 @@
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file linux-lmsensors.h
|
||||||
|
- * CVS: $Id: linux-lmsensors.h,v 1.5 2012/02/09 15:02:53 jagode Exp $
|
||||||
|
+ * CVS: $Id$
|
||||||
|
* @author Daniel Lucio
|
||||||
|
* @author Joachim Protze
|
||||||
|
* @author Heike Jagode
|
@ -1,11 +1,12 @@
|
|||||||
Summary: Performance Application Programming Interface
|
Summary: Performance Application Programming Interface
|
||||||
Name: papi
|
Name: papi
|
||||||
Version: 4.2.1
|
Version: 4.2.1
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
License: BSD
|
License: BSD
|
||||||
Group: Development/System
|
Group: Development/System
|
||||||
URL: http://icl.cs.utk.edu/papi/
|
URL: http://icl.cs.utk.edu/papi/
|
||||||
Source0: http://icl.cs.utk.edu/projects/papi/downloads/%{name}-%{version}.tar.gz
|
Source0: http://icl.cs.utk.edu/projects/papi/downloads/%{name}-%{version}.tar.gz
|
||||||
|
Patch1: papi-bz797692.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
||||||
BuildRequires: ncurses-devel
|
BuildRequires: ncurses-devel
|
||||||
BuildRequires: gcc-gfortran
|
BuildRequires: gcc-gfortran
|
||||||
@ -42,6 +43,7 @@ the PAPI userspace libraries and interfaces.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
%patch1 -p1 -b .bz
|
||||||
|
|
||||||
%build
|
%build
|
||||||
cd src
|
cd src
|
||||||
@ -100,6 +102,9 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%{_libdir}/*.a
|
%{_libdir}/*.a
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Mar 9 2012 William Cohen <wcohen@redhat.com> - 4.2.1-2
|
||||||
|
- Fix overrun in lmsensor component. (rhbz797692)
|
||||||
|
|
||||||
* Tue Feb 14 2012 William Cohen <wcohen@redhat.com> - 4.2.1-1
|
* Tue Feb 14 2012 William Cohen <wcohen@redhat.com> - 4.2.1-1
|
||||||
- Rebase to 4.2.1.
|
- Rebase to 4.2.1.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user