kopia lustrzana https://github.com/Hamlib/Hamlib
Try to make rigctl(d)/rotctl(d) a little more robust in case of bad data
https://github.com/Hamlib/Hamlib/issues/1351pull/1392/head
rodzic
0484dc08c8
commit
1a4a189dbc
|
@ -550,6 +550,7 @@ static int scanfc(FILE *fin, const char *format, void *p)
|
|||
int ret;
|
||||
*(char *)p = 0;
|
||||
|
||||
|
||||
ret = fscanf(fin, format, p);
|
||||
|
||||
if (ret < 0)
|
||||
|
@ -561,16 +562,16 @@ static int scanfc(FILE *fin, const char *format, void *p)
|
|||
|
||||
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 (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;
|
||||
}
|
||||
|
|
|
@ -405,10 +405,18 @@ static int scanfc(FILE *fin, const char *format, void *p)
|
|||
continue;
|
||||
}
|
||||
|
||||
rig_debug(RIG_DEBUG_ERR, "fscanf: %s\n", strerror(errno));
|
||||
rig_debug(RIG_DEBUG_ERR, "fscanf: parsing '%s' with '%s'\n", (char *)p, format);
|
||||
if (!feof(fin))
|
||||
{
|
||||
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;
|
||||
}
|
||||
while (1);
|
||||
|
|
Ładowanie…
Reference in New Issue