[Freeswitch-dev] get_trillium_val() loop termination

Brian West brian at freeswitch.org
Wed Feb 1 17:48:41 MSK 2012


Juraj,
	I thank you for your time to track this down.  But we don't post patches to the mailing lists you'll need to open a jira at http://jira.freeswitch.org and attach the patch if possible.

Thanks,
Brian

Sent from my hospital bed.

On Feb 1, 2012, at 8:42 AM, Juraj Fabo wrote:

> Hi
> 
> I'm using freetdm from git downloaded on 30.1.2012.
> On windows I had no problems, but on sles 11 sp1 64bit call setup message
> was missing caller and called information elements.
> I've tracked down the problem to file
> src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c, into function
> get_trillium_val()
> Particularly, when get_trillium_val(ton_codes, 0, IN_TON_UNK) is called,
> 0xe6 is returned (which is from the nsf_spec_codes[] table)
> I think the loop should have some strict terminate condition but not sure
> about the write intention.
> My workaround to be able to continue development is following
> 
> diff -urN src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c
> src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support_mod.c
> --- src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c   2012-02-01
> 14:02:30.000000000 +0000
> +++ src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support_mod.c
> 2012-02-01 14:02:08.000000000 +0000
> @@ -106,10 +106,11 @@
> static uint8_t get_trillium_val(ftdm2trillium_t *vals, uint8_t ftdm_val,
> uint8_t default_val)
> {
>        ftdm2trillium_t *val = vals;
> -       while(val++) {
> +       while(val) {
>                if (val->ftdm_val == ftdm_val) {
>                        return val->trillium_val;
>                }
> +                val++;
>        }
>        return default_val;
> }
> @@ -117,10 +118,11 @@
> static uint8_t get_ftdm_val(ftdm2trillium_t *vals, uint8_t trillium_val,
> uint8_t default_val)
> {
>        ftdm2trillium_t *val = vals;
> -       while(val++) {
> +       while(val) {
>                if (val->trillium_val == trillium_val) {
>                        return val->ftdm_val;
>                }
> +                val++;
>        }
>        return default_val;
> }
> 
> Is there some other way how to go around?
> 
> Thank you
> 
> Juraj
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services:
> consulting at freeswitch.org
> http://www.freeswitchsolutions.com
> 
> 
> 
> 
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://wiki.freeswitch.org
> http://www.cluecon.com
> 
> FreeSWITCH-dev mailing list
> FreeSWITCH-dev at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
> http://www.freeswitch.org

-- 
Brian West 
FreeSWITCH Solutions, LLC
Phone: +1 (918) 420-9266 
Fax:   +1 (918) 420-9267
brian at freeswitch.org
http://www.freeswitch.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-dev/attachments/20120201/079d8bd6/attachment.html 


Join us at ClueCon 2011 Aug 9-11, 2011
More information about the FreeSWITCH-dev mailing list