mirror of https://github.com/xzeldon/htop.git
Fix segfault in BarMeterMode_draw() for small terminal widths
This commit is contained in:
parent
aa167adb90
commit
717758409e
|
@ -6,6 +6,8 @@ What's new in version 0.9.1
|
|||
* Meters update in every screen (no longer halting while on Setup, etc.)
|
||||
* BUGFIX: Support larger numbers for process times.
|
||||
(thanks to Tristan Nakagawa for the report.)
|
||||
* BUGFIX: Segfault in BarMeterMode_draw() for small terminal widths
|
||||
(patch by Sebastian Pipping)
|
||||
|
||||
What's new in version 0.9
|
||||
|
||||
|
|
10
Meter.c
10
Meter.c
|
@ -264,13 +264,19 @@ static void BarMeterMode_draw(Meter* this, int x, int y, int w) {
|
|||
|
||||
w--;
|
||||
x++;
|
||||
char bar[w];
|
||||
|
||||
if (w < 1) {
|
||||
attrset(CRT_colors[RESET_COLOR]);
|
||||
return;
|
||||
}
|
||||
char bar[w + 1];
|
||||
|
||||
int blockSizes[10];
|
||||
for (int i = 0; i < w; i++)
|
||||
bar[i] = ' ';
|
||||
|
||||
sprintf(bar + (w-strlen(buffer)), "%s", buffer);
|
||||
const size_t barOffset = w - MIN(strlen(buffer), w);
|
||||
snprintf(bar + barOffset, w - barOffset + 1, "%s", buffer);
|
||||
|
||||
// First draw in the bar[] buffer...
|
||||
double total = 0.0;
|
||||
|
|
Loading…
Reference in New Issue