mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-10-29 16:26:39 +01:00
Swap (OpenBSD): fix mem leaks
This commit is contained in:
@@ -10,21 +10,24 @@ const char* ffDetectSwap(FFSwapResult* swap)
|
||||
{
|
||||
int nswap = swapctl(SWAP_NSWAP, 0, 0);
|
||||
if (nswap < 0) return "swapctl(SWAP_NSWAP) failed";
|
||||
if (nswap == 0) NULL;
|
||||
if (nswap == 0) return NULL;
|
||||
|
||||
struct swapent* swdev = malloc((uint32_t) nswap * sizeof(*swdev));
|
||||
FF_AUTO_FREE struct swapent* swdev = malloc((uint32_t) nswap * sizeof(*swdev));
|
||||
|
||||
if (swapctl(SWAP_STATS, swdev, nswap) < 0)
|
||||
return "swapctl(SWAP_STATS) failed";
|
||||
|
||||
uint64_t swapTotal = 0, swapUsed = 0;
|
||||
for (int i = 0; i < nswap; i++)
|
||||
{
|
||||
if (swdev[i].se_flags & SWF_ENABLE)
|
||||
{
|
||||
swap->bytesUsed += (uint64_t) swdev[i].se_inuse * DEV_BSIZE;
|
||||
swap->bytesTotal += (uint64_t) swdev[i].se_nblks * DEV_BSIZE;
|
||||
swapUsed += (uint64_t) swdev[i].se_inuse;
|
||||
swapTotal += (uint64_t) swdev[i].se_nblks;
|
||||
}
|
||||
}
|
||||
swap->bytesUsed = swapUsed * DEV_BSIZE;
|
||||
swap->bytesTotal = swapTotal * DEV_BSIZE;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user