diff options
| author | Leah Rowe <leah@libreboot.org> | 2023-05-16 11:31:49 +0100 | 
|---|---|---|
| committer | Leah Rowe <leah@libreboot.org> | 2023-05-16 23:11:35 +0100 | 
| commit | 0cc23b23637620f03fe71562f8859371661d0bef (patch) | |
| tree | 014f1d4ace2ae1e22e01d7cfac5ad0141f519be5 | |
| parent | 179323819b009278b9655d9c1359304205fba5f2 (diff) | |
util/spkmodem_recv: Add error handling
There was literally no error handling before.
Signed-off-by: Leah Rowe <leah@libreboot.org>
| -rw-r--r-- | util/spkmodem_recv/spkmodem-recv.c | 14 | 
1 files changed, 11 insertions, 3 deletions
| diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c index ae0b03d5..6d37ff44 100644 --- a/util/spkmodem_recv/spkmodem-recv.c +++ b/util/spkmodem_recv/spkmodem-recv.c @@ -1,6 +1,8 @@  /* spkmodem-recv.c - decode spkmodem signals */  /* SPDX-License-Identifier: GPL-2.0-or-later */ +#include <err.h> +#include <errno.h>  #include <stdio.h>  #include <stdlib.h>  #include <string.h> @@ -54,7 +56,8 @@ print_chars(void)  		llp++;  	}  	if (llp == FLUSH_TIMEOUT) -		fflush(stdout); +		if (fflush(stdout) == EOF) +			err(errno, NULL);  	if (f2 <= FREQ_SEP_MIN || f2 >= FREQ_SEP_MAX  			|| f1 <= FREQ_DATA_MIN || f1 >= FREQ_DATA_MAX) { @@ -62,8 +65,11 @@ print_chars(void)  		return;  	}  #if DEBUG +	long stdin_pos = 0; +	if ((stdin_pos = ftell(stdin)) == -1) +		err(errno, NULL);  	printf ("%d %d %d @%d\n", f1, f2, FREQ_DATA_THRESHOLD, -			ftell(stdin) - sizeof(frame)); +			stdin_pos - sizeof(frame));  #endif  	if (f1 < FREQ_DATA_THRESHOLD)  		ascii |= (1 << ascii_bit); @@ -90,7 +96,9 @@ read_sample(void)  	f1 -= pulse[ringpos];  	f1 += pulse[(ringpos + SAMPLES_PER_FRAME) % (2 * SAMPLES_PER_FRAME)];  	f2 -= pulse[(ringpos + SAMPLES_PER_FRAME) % (2 * SAMPLES_PER_FRAME)]; -	fread(frame + ringpos, 1, sizeof(frame[0]), stdin); +	if (fread(frame + ringpos, 1, sizeof(frame[0]), stdin) +			!= sizeof(frame[0])) +		err(errno = ECANCELED, "Could not read frame.");  	amplitude += abs(frame[ringpos]);  	if (abs(frame[ringpos]) > THRESHOLD) { /* rising/falling edge(pulse) */ | 
