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
|
||||
Name: papi
|
||||
Version: 4.2.1
|
||||
Release: 1%{?dist}
|
||||
Release: 2%{?dist}
|
||||
License: BSD
|
||||
Group: Development/System
|
||||
URL: http://icl.cs.utk.edu/papi/
|
||||
Source0: http://icl.cs.utk.edu/projects/papi/downloads/%{name}-%{version}.tar.gz
|
||||
Patch1: papi-bz797692.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
||||
BuildRequires: ncurses-devel
|
||||
BuildRequires: gcc-gfortran
|
||||
@ -42,6 +43,7 @@ the PAPI userspace libraries and interfaces.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch1 -p1 -b .bz
|
||||
|
||||
%build
|
||||
cd src
|
||||
@ -100,6 +102,9 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{_libdir}/*.a
|
||||
|
||||
%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
|
||||
- Rebase to 4.2.1.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user