Try to make rigctl(d)/rotctl(d) a little more robust in case of bad data

https://github.com/Hamlib/Hamlib/issues/1351
pull/1392/head
Mike Black W9MDB 2023-10-02 10:48:26 -05:00
rodzic 0484dc08c8
commit 1a4a189dbc
2 zmienionych plików z 16 dodań i 7 usunięć

Wyświetl plik

@ -550,6 +550,7 @@ static int scanfc(FILE *fin, const char *format, void *p)
int ret; int ret;
*(char *)p = 0; *(char *)p = 0;
ret = fscanf(fin, format, p); ret = fscanf(fin, format, p);
if (ret < 0) if (ret < 0)
@ -561,16 +562,16 @@ static int scanfc(FILE *fin, const char *format, void *p)
if (!feof(fin)) if (!feof(fin))
{ {
rig_debug(RIG_DEBUG_ERR, rig_debug(RIG_DEBUG_TRACE,"%s fscanf of:", __func__);
"fscanf: parsing '%s' with '%s'\n", dump_hex((unsigned char *)p, strlen(p));
(char *)p, rig_debug(RIG_DEBUG_TRACE," failed with format '%s'\n", format);
format); ret = 0x0a;
} }
} }
if (ret < 1) { rig_debug(RIG_DEBUG_TRACE, "%s: ret=%d\n", __func__, ret); } if (ret < 1) { rig_debug(RIG_DEBUG_TRACE, "%s: ret=%d\n", __func__, ret); }
if (ferror(fin)) { rig_debug(RIG_DEBUG_TRACE, "%s: errno=%d, %s\n", __func__, errno, strerror(errno)); } if (ferror(fin)) { rig_debug(RIG_DEBUG_ERR, "%s: errno=%d, %s\n", __func__, errno, strerror(errno)); }
return ret; return ret;
} }

Wyświetl plik

@ -405,10 +405,18 @@ static int scanfc(FILE *fin, const char *format, void *p)
continue; continue;
} }
rig_debug(RIG_DEBUG_ERR, "fscanf: %s\n", strerror(errno)); if (!feof(fin))
rig_debug(RIG_DEBUG_ERR, "fscanf: parsing '%s' with '%s'\n", (char *)p, format); {
rig_debug(RIG_DEBUG_TRACE,"%s fscanf of:", __func__);
dump_hex((unsigned char *)p, strlen(p));
rig_debug(RIG_DEBUG_TRACE," failed with format '%s'\n", format);
ret = 0x0a;
}
} }
if (ferror(fin)) { rig_debug(RIG_DEBUG_ERR, "%s: errno=%d, %s\n", __func__, errno, strerror(errno)); }
return ret; return ret;
} }
while (1); while (1);