X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=libbb%2Fprocps.c;h=fd19621db00be01eedf72d2402ad2875abadbc7d;hb=e357d2ae6833e3ca306f3aa6e12c6ddf2ff1eae2;hp=f799099fd33cb8887fd6980ade421ee32a7a1481;hpb=3b3ca113ed00a6781a28172bb3a6860a5f79ea02;p=oweals%2Fbusybox.git diff --git a/libbb/procps.c b/libbb/procps.c index f799099fd..fd19621db 100644 --- a/libbb/procps.c +++ b/libbb/procps.c @@ -45,8 +45,8 @@ static int get_cached(cache_t *cp, unsigned id) for (i = 0; i < cp->size; i++) if (cp->cache[i].id == id) return i; - i = cp->size; - cp->cache = xrealloc_vector(cp->cache, 2, cp->size++); + i = cp->size++; + cp->cache = xrealloc_vector(cp->cache, 2, i); cp->cache[i++].id = id; return -i; } @@ -59,8 +59,8 @@ static char* get_cached(cache_t *cp, unsigned id, ug_func* fp) for (i = 0; i < cp->size; i++) if (cp->cache[i].id == id) return cp->cache[i].name; - i = cp->size; - cp->cache = xrealloc_vector(cp->cache, 2, cp->size++); + i = cp->size++; + cp->cache = xrealloc_vector(cp->cache, 2, i); cp->cache[i].id = id; /* Never fails. Generates numeric string if name isn't found */ fp(cp->cache[i].name, sizeof(cp->cache[i].name), id); @@ -308,7 +308,7 @@ procps_status_t* FAST_FUNC procps_scan(procps_status_t* sp, int flags) FILE *file; strcpy(filename_tail, "/smaps"); - file = fopen(filename, "r"); + file = fopen_for_read(filename); if (!file) break; while (fgets(buf, sizeof(buf), file)) {