[CPUFREQ] fix show_trans_table
Fix show_trans_table when it overflows PAGE_SIZE. * Not all snprintf calls were protected against being passed a negative length. * When show_trans_table overflows, len might be > PAGE_SIZE. In that case, returns PAGE_SIZE. Signed-off-by: Cesar Eduardo Barros <cesarb@cesarb.net> Signed-off-by: Dave Jones <davej@codemonkey.org.uk>
This commit is contained in:
parent
74212ca432
commit
25aca347d4
1 changed files with 5 additions and 1 deletions
|
@ -114,7 +114,7 @@ show_trans_table(struct cpufreq_policy *policy, char *buf)
|
|||
stat->freq_table[i]);
|
||||
}
|
||||
if (len >= PAGE_SIZE)
|
||||
return len;
|
||||
return PAGE_SIZE;
|
||||
|
||||
len += snprintf(buf + len, PAGE_SIZE - len, "\n");
|
||||
|
||||
|
@ -131,8 +131,12 @@ show_trans_table(struct cpufreq_policy *policy, char *buf)
|
|||
len += snprintf(buf + len, PAGE_SIZE - len, "%9u ",
|
||||
stat->trans_table[i*stat->max_state+j]);
|
||||
}
|
||||
if (len >= PAGE_SIZE)
|
||||
break;
|
||||
len += snprintf(buf + len, PAGE_SIZE - len, "\n");
|
||||
}
|
||||
if (len >= PAGE_SIZE)
|
||||
return PAGE_SIZE;
|
||||
return len;
|
||||
}
|
||||
CPUFREQ_STATDEVICE_ATTR(trans_table,0444,show_trans_table);
|
||||
|
|
Loading…
Reference in a new issue