Skip to content

Commit

Permalink
tcp_no_new_conn_bflag: fix incorrect behaviour when using integer flags
Browse files Browse the repository at this point in the history
	* also fix some redundant pointer ref/dereferencing
(cherry picked from commit 0be4225)
  • Loading branch information
liviuchircu committed May 9, 2014
1 parent effd4b5 commit 7dca7b5
Show file tree
Hide file tree
Showing 12 changed files with 29 additions and 28 deletions.
3 changes: 2 additions & 1 deletion cfg.y
Expand Up @@ -896,7 +896,8 @@ assign_stm: DEBUG EQUAL snumber {
| TCP_OPT_CRLF_PINGPONG EQUAL error { yyerror("boolean value expected"); }
| TCP_NO_NEW_CONN_BFLAG EQUAL NUMBER {
#ifdef USE_TCP
fix_flag_name(&tmp, $3);
tmp = NULL;
fix_flag_name(tmp, $3);
tcp_no_new_conn_bflag = get_flag_id_by_name(FLAG_TYPE_BRANCH, tmp);
if (!flag_in_range( (flag_t)tcp_no_new_conn_bflag ) )
yyerror("invalid TCP no_new_conn Branch Flag");
Expand Down
12 changes: 6 additions & 6 deletions flags.h
Expand Up @@ -38,13 +38,13 @@ typedef unsigned int flag_t;
#define NAMED_FLAG_ERROR 33
#define FLAG_DELIM ' '

#define fix_flag_name(_s, _flag) \
do { \
if (!*_s && _flag > 0) { \
#define fix_flag_name(_s, _flag) \
do { \
if (!_s && _flag > 0) { \
LM_WARN("Integer flags are now deprecated! " \
"Use unique quoted strings!\n"); \
*_s = int2str(_flag, NULL); \
} \
"Use unique quoted strings!\n"); \
_s = int2str(_flag, NULL); \
} \
} while (0)

enum flag_type {
Expand Down
24 changes: 12 additions & 12 deletions modules/acc/acc_mod.c
Expand Up @@ -393,14 +393,14 @@ static int mod_init( void )

/* ----------- GENERIC INIT SECTION ----------- */

fix_flag_name(&failed_transaction_string, failed_transaction_flag);
fix_flag_name(failed_transaction_string, failed_transaction_flag);

failed_transaction_flag =
get_flag_id_by_name(FLAG_TYPE_MSG, failed_transaction_string);

if (flag_idx2mask(&failed_transaction_flag)<0)
return -1;
fix_flag_name(&cdr_string, cdr_flag);
fix_flag_name(cdr_string, cdr_flag);

cdr_flag = get_flag_id_by_name(FLAG_TYPE_MSG, cdr_string);

Expand Down Expand Up @@ -466,14 +466,14 @@ static int mod_init( void )
return -1;
}

fix_flag_name(&log_string, log_flag);
fix_flag_name(log_string, log_flag);

log_flag = get_flag_id_by_name(FLAG_TYPE_MSG, log_string);

if (flag_idx2mask(&log_flag)<0)
return -1;

fix_flag_name(&log_missed_string, log_missed_flag);
fix_flag_name(log_missed_string, log_missed_flag);

log_missed_flag = get_flag_id_by_name(FLAG_TYPE_MSG, log_missed_string);

Expand All @@ -500,14 +500,14 @@ static int mod_init( void )
return -1;
}
/* fix the flags */
fix_flag_name(&db_string, db_flag);
fix_flag_name(db_string, db_flag);

db_flag = get_flag_id_by_name(FLAG_TYPE_MSG, db_string);

if (flag_idx2mask(&db_flag)<0)
return -1;

fix_flag_name(&db_missed_string, db_missed_flag);
fix_flag_name(db_missed_string, db_missed_flag);

db_missed_flag = get_flag_id_by_name(FLAG_TYPE_MSG, db_missed_string);

Expand Down Expand Up @@ -546,14 +546,14 @@ static int mod_init( void )
}

/* fix the flags */
fix_flag_name(&aaa_string, aaa_flag);
fix_flag_name(aaa_string, aaa_flag);

aaa_flag = get_flag_id_by_name(FLAG_TYPE_MSG, aaa_string);

if (flag_idx2mask(&aaa_flag)<0)
return -1;

fix_flag_name(&aaa_missed_string, aaa_missed_flag);
fix_flag_name(aaa_missed_string, aaa_missed_flag);

aaa_missed_flag = get_flag_id_by_name(FLAG_TYPE_MSG, aaa_missed_string);

Expand All @@ -574,14 +574,14 @@ static int mod_init( void )

#ifdef DIAM_ACC
/* fix the flags */
fix_flag_name(&diameter_string, diameter_flag);
fix_flag_name(diameter_string, diameter_flag);

diameter_flag = get_flag_id_by_name(FLAG_TYPE_MSG, diameter_string);

if (flag_idx2mask(&diameter_flag)<0)
return -1;

fix_flag_name(&diameter_missed_string, diameter_missed_flag);
fix_flag_name(diameter_missed_string, diameter_missed_flag);

diameter_missed_flag=get_flag_id_by_name(FLAG_TYPE_MSG, diameter_missed_string);

Expand Down Expand Up @@ -614,14 +614,14 @@ static int mod_init( void )
}

/* fix the flags */
fix_flag_name(&evi_string, evi_flag);
fix_flag_name(evi_string, evi_flag);

evi_flag = get_flag_id_by_name(FLAG_TYPE_MSG, evi_string);

if (flag_idx2mask(&evi_flag)<0)
return -1;

fix_flag_name(&evi_missed_string, evi_missed_flag);
fix_flag_name(evi_missed_string, evi_missed_flag);

evi_missed_flag = get_flag_id_by_name(FLAG_TYPE_MSG, evi_missed_string);

Expand Down
2 changes: 1 addition & 1 deletion modules/auth_aaa/authaaa_mod.c
Expand Up @@ -143,7 +143,7 @@ static int mod_init(void)
attrs[A_ACCT_SESSION_ID].name = "Acct-Session-Id";
vals[V_SIP_SESSION].name = "Sip-Session";

fix_flag_name(&use_ruri_flag_str, use_ruri_flag);
fix_flag_name(use_ruri_flag_str, use_ruri_flag);
use_ruri_flag = get_flag_id_by_name(FLAG_TYPE_MSG, use_ruri_flag_str);

if (!aaa_proto_url) {
Expand Down
2 changes: 1 addition & 1 deletion modules/call_control/call_control.c
Expand Up @@ -1184,7 +1184,7 @@ mod_init(void)
LM_CRIT("cannot register callback for dialogs loaded from the database\n");
}

fix_flag_name(&prepaid_account_str, prepaid_account_flag);
fix_flag_name(prepaid_account_str, prepaid_account_flag);

prepaid_account_flag = get_flag_id_by_name(FLAG_TYPE_MSG, prepaid_account_str);

Expand Down
2 changes: 1 addition & 1 deletion modules/nathelper/nathelper.c
Expand Up @@ -476,7 +476,7 @@ mod_init(void)
return -1;
}

fix_flag_name(&sipping_flag_str, sipping_flag);
fix_flag_name(sipping_flag_str, sipping_flag);
sipping_flag = get_flag_id_by_name(FLAG_TYPE_BRANCH, sipping_flag_str);

sipping_flag = (sipping_flag==-1)?0:(1<<sipping_flag);
Expand Down
2 changes: 1 addition & 1 deletion modules/qos/qos.c
Expand Up @@ -101,7 +101,7 @@ int load_qos( struct qos_binds *qosb)
*/
static int mod_init(void)
{
fix_flag_name(&qos_flag_str, qos_flag);
fix_flag_name(qos_flag_str, qos_flag);

qos_flag = get_flag_id_by_name(FLAG_TYPE_MSG, qos_flag_str);

Expand Down
2 changes: 1 addition & 1 deletion modules/registrar/reg_mod.c
Expand Up @@ -343,7 +343,7 @@ static int mod_init(void)
gruu_secret.len = strlen(gruu_secret.s);

/* fix the flags */
fix_flag_name(&tcp_persistent_flag_s, tcp_persistent_flag);
fix_flag_name(tcp_persistent_flag_s, tcp_persistent_flag);
tcp_persistent_flag = get_flag_id_by_name(FLAG_TYPE_MSG, tcp_persistent_flag_s);
tcp_persistent_flag = (tcp_persistent_flag!=-1)?(1<<tcp_persistent_flag):0;

Expand Down
2 changes: 1 addition & 1 deletion modules/siptrace/siptrace.c
Expand Up @@ -288,7 +288,7 @@ static int mod_init(void)

LM_INFO("initializing...\n");

fix_flag_name(&trace_flag_str, trace_flag);
fix_flag_name(trace_flag_str, trace_flag);

trace_flag = get_flag_id_by_name(FLAG_TYPE_MSG, trace_flag_str);

Expand Down
2 changes: 1 addition & 1 deletion modules/sst/sst.c
Expand Up @@ -149,7 +149,7 @@ static int mod_init(void)
exports.stats = 0;
}

fix_flag_name(&sst_flag_str, sst_flag);
fix_flag_name(sst_flag_str, sst_flag);

sst_flag = get_flag_id_by_name(FLAG_TYPE_MSG, sst_flag_str);

Expand Down
2 changes: 1 addition & 1 deletion modules/tm/tm.c
Expand Up @@ -714,7 +714,7 @@ static int mod_init(void)
return -1;
}

fix_flag_name(&minor_branch_flag_str, minor_branch_flag);
fix_flag_name(minor_branch_flag_str, minor_branch_flag);

minor_branch_flag =
get_flag_id_by_name(FLAG_TYPE_BRANCH, minor_branch_flag_str);
Expand Down
2 changes: 1 addition & 1 deletion modules/usrloc/ul_mod.c
Expand Up @@ -304,7 +304,7 @@ static int mod_init(void)
}
}

fix_flag_name(&nat_bflag_str, nat_bflag);
fix_flag_name(nat_bflag_str, nat_bflag);

nat_bflag = get_flag_id_by_name(FLAG_TYPE_BRANCH, nat_bflag_str);

Expand Down

0 comments on commit 7dca7b5

Please sign in to comment.