lmkd: fix an overallocation
pidhash is defined as an array of pointers: static struct proc** pidhash = NULL; ...So we should be allocating `LINE_MAX * sizeof(struct proc *)` elems here. Given the current constants here, this saves ~130KB, so not a big deal, but still convenient. Caught by clang's static analyzer: system/memory/lmkd/statslog.c:354:19: warning: Result of 'calloc' is converted to a pointer of type 'struct proc *', which is incompatible with sizeof operand type 'struct proc' [clang-analyzer-unix.MallocSizeof] Bug: None Test: TreeHugger Change-Id: Iee9ca00a3a2a0ecababe9810d2ffcfc42169dd25
This commit is contained in:
parent
a93503e3d7
commit
a5845e7b60
|
|
@ -351,7 +351,7 @@ bool init_poll_kernel(struct kernel_poll_info *poll_info) {
|
|||
|
||||
static void proc_insert(struct proc* procp) {
|
||||
if (!pidhash) {
|
||||
pidhash = calloc(PIDHASH_SZ, sizeof(struct proc));
|
||||
pidhash = calloc(PIDHASH_SZ, sizeof(*pidhash));
|
||||
}
|
||||
|
||||
int hval = pid_hashfn(procp->pid);
|
||||
|
|
@ -426,7 +426,7 @@ void stats_purge_tasknames() {
|
|||
procp = next;
|
||||
}
|
||||
}
|
||||
memset(pidhash, 0, PIDHASH_SZ * sizeof(struct proc));
|
||||
memset(pidhash, 0, PIDHASH_SZ * sizeof(*pidhash));
|
||||
}
|
||||
|
||||
#endif /* LMKD_LOG_STATS */
|
||||
|
|
|
|||
Loading…
Reference in New Issue