Skip to content

Commit

Permalink
Fix ct_options for CS_OPT_ARITHIGNORE and CS_OPT_ARITHABORT
Browse files Browse the repository at this point in the history
The two options required just normal boolean processing.

This problem was reported by Matt Meissner.

Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
  • Loading branch information
freddy77 committed Jun 6, 2017
1 parent fdd95ec commit 60b4782
Showing 1 changed file with 2 additions and 30 deletions.
32 changes: 2 additions & 30 deletions src/ctlib/ct.c
Expand Up @@ -3419,6 +3419,8 @@ ct_options(CS_CONNECTION * con, CS_INT action, CS_INT option, CS_VOID * param, C
, { CS_OPT_SHOWPLAN, TDS_OPT_SHOWPLAN }
, { CS_OPT_STATS_IO, TDS_OPT_STAT_IO }
, { CS_OPT_STATS_TIME, TDS_OPT_STAT_TIME }
, { CS_OPT_ARITHIGNORE, TDS_OPT_ARITHIGNOREON }
, { CS_OPT_ARITHABORT, TDS_OPT_ARITHABORTON }
};

tdsdump_log(TDS_DBG_FUNC, "ct_options(%p, %d, %d, %p, %d, %p)\n", con, action, option, param, paramlen, outlen);
Expand Down Expand Up @@ -3512,36 +3514,6 @@ ct_options(CS_CONNECTION * con, CS_INT action, CS_INT option, CS_VOID * param, C
return CS_FAIL;
}
break;
case CS_OPT_ARITHABORT:
tds_option = TDS_OPT_ARITHABORTON;
switch (*(CS_BOOL *) param) {
case CS_TRUE:
break;
case CS_FALSE:
tds_option = TDS_OPT_ARITHABORTOFF;
break;
default:
if (action == CS_SET)
return CS_FAIL;
}
tds_argument.ti = TDS_OPT_ARITHOVERFLOW | TDS_OPT_NUMERICTRUNC;
tds_argsize = (action == CS_SET) ? 1 : 0;
break;
case CS_OPT_ARITHIGNORE:
tds_option = TDS_OPT_ARITHIGNOREON;
switch (*(CS_BOOL *) param) {
case CS_TRUE:
break;
case CS_FALSE:
tds_option = TDS_OPT_ARITHIGNOREOFF;
break;
default:
if (action == CS_SET)
return CS_FAIL;
}
tds_argument.i = TDS_OPT_ARITHOVERFLOW | TDS_OPT_NUMERICTRUNC;
tds_argsize = (action == CS_SET) ? 4 : 0;
break;
case CS_OPT_AUTHOFF:
tds_option = TDS_OPT_AUTHOFF;
tds_argument.c = (TDS_CHAR *) param;
Expand Down

0 comments on commit 60b4782

Please sign in to comment.