Hi list.

About the weird AT2 keep-alive behavior Andreas encountered where keep
alive "defaulted" to 4 seconds when it wasn't defined. I'm not sure
exactly how it happened before, but with current CVS I encountered a
similar behavior, except that in my case the keepalive was set to 609
seconds "by default" when it was not defined. 
The problem lies in the piece of code that attempts to read the
keepalive configuration parameter - it uses a an uninitialized temp
variable as a parameter to cfg_get_integer(), and assumes that if
keepalive isn't set in the configuration, that variable will be inited
to -1. but cfg_get_integer() does not init the parameter it is given at
all - it just passes it to octsr_parse_long() - something which doesn't
happen at all if the value it is looking for in the configuration isn't
found. so the temp variable gets used w/o initialization (don't know why
gcc didn't catch it) and so privdata->keepalive will contain an arbitary
value if not set explicitly. 

I don't know if cfg_get_integer() should be fixed, but the following
patch to smsc_at2.c will also solve the problem.

--
Oded Arbel
m-Wise Inc.
[EMAIL PROTECTED]

A man is rich in proportion to the number of things which he can afford
to let alone.



Attachment: smsc_at2.keepalive.patch
Description: smsc_at2.keepalive.patch

Reply via email to