Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
htop
Commits
a94b0466
Commit
a94b0466
authored
Jan 06, 2016
by
Explorer09
Browse files
Fix a potential array overflow.
parent
d56bcd8e
Changes
2
Hide whitespace changes
Inline
Side-by-side
Meter.c
View file @
a94b0466
...
...
@@ -70,6 +70,7 @@ typedef struct MeterClass_ {
#define Meter_defaultMode(this_) As_Meter(this_)->defaultMode
#define Meter_getItems(this_) As_Meter(this_)->curItems
#define Meter_setItems(this_, n_) As_Meter(this_)->curItems = (n_)
#define Meter_getMaxItems(this_) As_Meter(this_)->maxItems
#define Meter_attributes(this_) As_Meter(this_)->attributes
#define Meter_name(this_) As_Meter(this_)->name
#define Meter_uiName(this_) As_Meter(this_)->uiName
...
...
@@ -372,6 +373,10 @@ static void GraphMeterMode_draw(Meter* this, int x, int y, int w) {
if
(
!
this
->
drawData
)
{
this
->
drawData
=
calloc
(
1
,
sizeof
(
GraphData
));
GraphData
*
data
=
(
GraphData
*
)
this
->
drawData
;
if
(
!
data
->
prevItemSums
)
data
->
prevItemSums
=
calloc
(
Meter_getMaxItems
(
this
),
sizeof
(
*
data
->
prevItemSums
));
if
(
!
data
->
currentItemSums
)
data
->
currentItemSums
=
calloc
(
Meter_getMaxItems
(
this
),
sizeof
(
*
data
->
currentItemSums
));
for
(
int
i
=
0
;
i
<
nValues
;
i
++
)
{
for
(
int
line
=
0
;
line
<
GRAPH_HEIGHT
;
line
++
)
{
data
->
colors
[
i
][
line
]
=
BAR_SHADOW
;
...
...
@@ -413,12 +418,6 @@ static void GraphMeterMode_draw(Meter* this, int x, int y, int w) {
int
items
=
Meter_getItems
(
this
);
if
(
!
data
->
prevItemSums
)
{
data
->
prevItemSums
=
calloc
(
items
,
sizeof
(
*
data
->
prevItemSums
));
}
if
(
!
data
->
currentItemSums
)
{
data
->
currentItemSums
=
calloc
(
items
,
sizeof
(
*
data
->
currentItemSums
));
}
double
*
prevItemSums
=
data
->
prevItemSums
;
double
*
currentItemSums
=
data
->
currentItemSums
;
...
...
Meter.h
View file @
a94b0466
...
...
@@ -57,6 +57,7 @@ typedef struct MeterClass_ {
#define Meter_defaultMode(this_) As_Meter(this_)->defaultMode
#define Meter_getItems(this_) As_Meter(this_)->curItems
#define Meter_setItems(this_, n_) As_Meter(this_)->curItems = (n_)
#define Meter_getMaxItems(this_) As_Meter(this_)->maxItems
#define Meter_attributes(this_) As_Meter(this_)->attributes
#define Meter_name(this_) As_Meter(this_)->name
#define Meter_uiName(this_) As_Meter(this_)->uiName
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment