Fix segfault in rigctl_parse.c when rig does not have ctcss_list or dcs_list

pull/691/head
Mike Black W9MDB 2021-04-30 15:42:03 -05:00
rodzic 12683d4faf
commit a27595d71e
2 zmienionych plików z 24 dodań i 15 usunięć

Wyświetl plik

@ -360,7 +360,8 @@ int dumpcaps(RIG *rig, FILE *fout)
if (caps->has_set_level & RIG_LEVEL_READONLY_LIST)
{
fprintf(fout, "Warning--backend can set readonly levels!\n");
fprintf(fout, "Warning--backend can set readonly levels=0x%0llx\n", caps->has_set_level & RIG_LEVEL_READONLY_LIST);
backend_warnings++;
}

Wyświetl plik

@ -4357,26 +4357,34 @@ declare_proto_rig(dump_state)
fprintf(fout, "has_power2mW=%d\n", rig->caps->power2mW != NULL);
fprintf(fout, "has_mW2power=%d\n", rig->caps->mW2power != NULL);
fprintf(fout, "timeout=%d\n", rig->caps->timeout);
fprintf(fout, "ctcss_list=");
for (i = 0; i < CTCSS_LIST_SIZE && rig->caps->ctcss_list[i] != 0; i++)
if (rig->caps->ctcss_list)
{
fprintf(fout,
" %u.%1u",
rig->caps->ctcss_list[i] / 10, rig->caps->ctcss_list[i] % 10);
fprintf(fout, "ctcss_list=");
for (i = 0; i < CTCSS_LIST_SIZE && rig->caps->ctcss_list[i] != 0; i++)
{
fprintf(fout,
" %u.%1u",
rig->caps->ctcss_list[i] / 10, rig->caps->ctcss_list[i] % 10);
}
fprintf(fout, "\n");
}
fprintf(fout, "\n");
fprintf(fout, "dcs_list=");
for (i = 0; i < DCS_LIST_SIZE && rig->caps->dcs_list[i] != 0; i++)
if (rig->caps->dcs_list)
{
fprintf(fout,
" %u",
rig->caps->dcs_list[i]);
}
fprintf(fout, "dcs_list=");
fprintf(fout, "\n");
for (i = 0; i < DCS_LIST_SIZE && rig->caps->dcs_list[i] != 0; i++)
{
fprintf(fout,
" %u",
rig->caps->dcs_list[i]);
}
fprintf(fout, "\n");
}
fprintf(fout, "done\n");
}