From: <ca...@us...> - 2009-07-30 10:19:45
|
Revision: 2007 http://ganglia.svn.sourceforge.net/ganglia/?rev=2007&view=rev Author: carenas Date: 2009-07-30 10:19:39 +0000 (Thu, 30 Jul 2009) Log Message: ----------- libmetrics: linux: avoid stack overflows when parsing very long mounts reported to overflow regularly when using the NFS implementation in RHEL5 that creates temporary mountpoints entries for files accesed from NFS mounted filesystems where the server returned a different fsid or filehandle. increase all local buffers to 1K as a workaround, so that the longer line can be parsed and that there is no chance to overflow them triggering "stack smashing" issues that would result in a terminated gmond if any of the parts is longer than expected. Signed-off-by: Jason A. Smith <sm...@bn...> Modified Paths: -------------- trunk/monitor-core/libmetrics/linux/metrics.c Modified: trunk/monitor-core/libmetrics/linux/metrics.c =================================================================== --- trunk/monitor-core/libmetrics/linux/metrics.c 2009-07-28 12:48:49 UTC (rev 2006) +++ trunk/monitor-core/libmetrics/linux/metrics.c 2009-07-30 10:19:39 UTC (rev 2007) @@ -1202,8 +1202,8 @@ float find_disk_space(double *total_size, double *total_free) { FILE *mounts; - char procline[256]; - char mount[128], device[128], type[32], mode[128]; + char procline[1024]; + char mount[1024], device[1024], type[1024], mode[1024]; /* We report in GB = 1e9 bytes. */ double reported_units = 1e9; /* Track the most full disk partition, report with a percentage. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |