view rvinterf/tmsh/rftablechk.c @ 965:2969032bdfac

fcup-smsend[mult]: fix buglet in K&R C NULL pointer passing The only 100% safe way to pass a NULL pointer as a function argument in K&R C is to cast 0 to a pointer type; failing to do so may cause mysterious bugs (invalid stack frames or garbage in argument registers) on 64-bit machines. This issue has already been fixed in most of FC host tools, but I just found some missed spots: passing of NULL UDH to PDU encoding functions in fcup-smsend[mult] in the case of single (not concatenated) SMS.
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 01 Sep 2023 07:33:51 +0000
parents bc23c1cd30ae
children
line wrap: on
line source

/*
 * This module contains the function that checks if the table format
 * and rftw index match.
 */

#include <sys/types.h>
#include <stdio.h>
#include <string.h>
#include <strings.h>
#include <stdlib.h>
#include "localtypes.h"
#include "l1tm.h"
#include "exitcodes.h"

static struct table_match {
	int	index;
	char	*format;
} matchlist[] = {
	{RX_AGC_TABLE, "agc-table"},
	{AFC_PARAMS, "afcparams"},
	{RX_AGC_GLOBAL_PARAMS, "agc-global-params"},
	{RX_IL_2_AGC_MAX, "il2agc"},
	{RX_IL_2_AGC_PWR, "il2agc"},
	{RX_IL_2_AGC_AV, "il2agc"},
	{TX_LEVELS, "tx-levels"},
	{TX_CAL_CHAN, "tx-calchan"},
	{TX_CAL_TEMP, "tx-caltemp"},
	{RX_CAL_CHAN, "rx-calchan"},
	{RX_CAL_TEMP, "rx-caltemp"},
	{RX_AGC_PARAMS, "rx-agc-params"},
	{0, 0}
};

rftw_index_format_check(index, format)
	char *format;
{
	struct table_match *tp;

	if (!strcmp(format, "raw"))
		return(0);
	for (tp = matchlist; tp->index; tp++) {
		if (tp->index == index) {
			if (!strcmp(format, tp->format))
				return(0);
			printf("error: read table of type %s, expected %s\n",
				format, tp->format);
			return(ERROR_USAGE);
		}
	}
	return(0);
}