RE: smsc_at crashes on non-numeric SMS destination

"Andrija Petrovic" <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Message-ID <[email protected]>
Supressing SMS delivery to short codes shouldn't be a feature hard-coded
into the code.
Why not consider black-list-regex/white-list-regex instead?

Andrija

-----Original Message-----
From: [email protected] [mailto:[email protected]]On
Behalf Of Wilfried Goesgens
Sent: Tuesday, May 09, 2006 8:46 PM
To: [email protected]
Subject: Re: smsc_at crashes on non-numeric SMS destination


On Tue, May 09, 2006 at 02:50:39PM +0200, Andrija Petrovic wrote:
> I'm not quite sure that your proposal will nicely fix the thing:
>
> 1. msg->sms.receiver should be allowed to be shorter than 6 digits, why
> not...
well, if you'd like to send messages to vas numbers... this was which i
wanted it not to do.
you can make the bill rather high in a verry short amount of time that way.


> 2. as far as at2_format_address_field is concerned, digits may be hex
>
> So, why not use the patch I provided? It's simple and safe... If
> at2_format_address_field fails, it will return NULL, that will be catched
> inside the caller function at2_pdu_encode, so it will return NULL as well,
> so at2_send_one_message (currently) will generate the error(2, ...)
message
> and safely return.
>
> Anyway, AFAIC, I'd let the at2_format_address_field perform the sanity
> checks and (possibly) the very conversion, and not perfom any ad-hoc
checks
> in outer functions.
you may be right at this point.

>
> Now, about destroying the message, take a look at how you get to the
> at2_send_one_message:
> at2_send_messages removes the message from the queue and calls
> at2_send_one_message.
> It seems that no destroying of the received pointer should be done at all,
> correct me if I'm wrong...
well, thats exactly what i was asking...
>
> Andrija
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]]On
> Behalf Of Wilfried Goesgens
> Sent: Tuesday, May 09, 2006 2:21 PM
> To: [email protected]
> Subject: Re: smsc_at crashes on non-numeric SMS destination
>
>
> On Tue, May 09, 2006 at 02:07:42PM +0200, Andrija Petrovic wrote:
> > smsc_at does not check the digits of the address field in the function
> > at2_format_address_field
> > So, if the recipient's address contains a non-numeric string (e.g. 'Info
> > Service'), and that's quite possible,
> > the octstr assertion crashes the bearerbox during octstr_append_char.
> >
> > Added sanity check on digits before calling the octstr_append_char.
> >
> > cheers,
> > Andrija
>
>
> i've added the following to send_one_message to fix this:
>
> 	if ((octstr_len(msg->sms.receiver)<6)||
> 		(octstr_parse_double(&number, msg->sms.receiver,0)==-1))
> 		{/* ok. this message is faulty. no shortcodes or non number targets */
>             error(0, "AT4[%s]: bad receiver %s. text %s dropping!",
> 				  octstr_get_cstr(privdata->name),
> 				  octstr_get_cstr(msg->sms.receiver),
> 				  octstr_get_cstr(msg->sms.msgdata));
> 			if( DLR_IS_ENABLED_DEVICE(msg->sms.dlr_mask))
> 				bb_smscconn_send_failed(privdata->conn, msg,
> 										SMSCCONN_FAILED_MALFORMED, octstr_create("MALFORMED"));
> 			return 0;
>
> 		}
>
> is it correct, that the message is destroyed inside
bb_smscconn_send_failed?
> if i destroy it after that, i get trouble...
>
>
> Wilfried G?sgens
>
>
>
>
>
>
>

--
Wilfried GĂśsgens
Newthinking Communications
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.