diff --git a/host/hackrf-tools/src/hackrf_transfer.c b/host/hackrf-tools/src/hackrf_transfer.c index 489f7dfa..c3680263 100644 --- a/host/hackrf-tools/src/hackrf_transfer.c +++ b/host/hackrf-tools/src/hackrf_transfer.c @@ -513,8 +513,15 @@ int tx_callback(hackrf_transfer* transfer) /* Read samples from file. */ bytes_read = fread(transfer->buffer, 1, bytes_to_read, file); - /* If no more bytes, error or file empty, treat as end. */ - if (bytes_read == 0) { + /* Terminate immediately on error. */ + if (ferror(file)) { + fprintf(stderr, "Could not read input file.\n"); + stop_main_loop(); + return -1; + } + + /* Finish TX if no more data can be read. */ + if ((bytes_read == 0) && (ftell(file) < 1)) { tx_complete = true; return 0; }