diff options
| author | Federico Angelilli <code@fedang.net> | 2024-11-16 03:04:47 +0100 |
|---|---|---|
| committer | Federico Angelilli <code@fedang.net> | 2024-11-16 03:04:47 +0100 |
| commit | 43fb3ac0b3f25cf1cc8aa0624b883ad372a5da95 (patch) | |
| tree | 588d1e5e5b92cca3bde6594aa7c107084e21a2c8 /src/blocks/ram.c | |
| parent | 7d2b6ded634ef926cd6baf25dd8e89db7e45c7c2 (diff) | |
Handle errors without assert
Diffstat (limited to 'src/blocks/ram.c')
| -rw-r--r-- | src/blocks/ram.c | 35 |
1 files changed, 25 insertions, 10 deletions
diff --git a/src/blocks/ram.c b/src/blocks/ram.c index 5ea7760..da56baa 100644 --- a/src/blocks/ram.c +++ b/src/blocks/ram.c @@ -19,19 +19,34 @@ static const struct timespec block_ram_interval = { static void block_ram_update(block_t *block) { - FILE *meminfo = fopen("/proc/meminfo", "rb"); - assert(meminfo != NULL); + const char *path = "/proc/meminfo"; + FILE *meminfo = fopen(path, "rb"); + + if (meminfo == NULL) { + log_value_debug("Failed to open meminfo", + "s:label", block->label, + "s:path", path, + "i:errno", errno); + return; + } uintmax_t total, unused, available, buffers, cached; - assert(5 == fscanf(meminfo, - "MemTotal: %ju kB\n" - "MemFree: %ju kB\n" - "MemAvailable: %ju kB\n" - "Buffers: %ju kB\n" - "Cached: %ju kB\n", - &total, &unused, &available, &buffers, &cached)); + int n = fscanf(meminfo, + "MemTotal: %ju kB\n" + "MemFree: %ju kB\n" + "MemAvailable: %ju kB\n" + "Buffers: %ju kB\n" + "Cached: %ju kB\n", + &total, &unused, &available, &buffers, &cached); fclose(meminfo); + if (n != 5) { + log_value_debug("Failed to read meminfo", + "s:label", block->label, + "i:errno", errno); + return; + } + static const char *ram_formats[] = { "total", "free", @@ -98,7 +113,7 @@ static bool block_ram_validate(block_t *block, const block_scheme_t *scheme) } ram->format = ram->block.text; - ram->block.text = NULL; + ram->block.text = strcopy("?"); return true; } |
