aboutsummaryrefslogtreecommitdiffstats
path: root/main/fskmodem.c
diff options
context:
space:
mode:
authormurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2007-08-02 18:32:34 +0000
committermurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2007-08-02 18:32:34 +0000
commit7d60309b944812dc66df1b1a953ac2fac50f8353 (patch)
tree1ab87934a798829a18f1fed772c1a2bf32008759 /main/fskmodem.c
parent4c19db0577385be300103334a3b6899bb77706ef (diff)
Merged revisions 77945 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ................ r77945 | murf | 2007-08-02 12:21:40 -0600 (Thu, 02 Aug 2007) | 9 lines Merged revisions 77942 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r77942 | murf | 2007-08-02 11:56:37 -0600 (Thu, 02 Aug 2007) | 1 line This patch hopefully solves 10141; The user is running with it, and it doesn't appear to harm asterisk's operation, and may prevent a crash. I'll store it in 1.2, as we have shut down support on 1.2, but since I developed the patch before support finished, and it might affect 1.4 and trunk, I'm going ahead with it. ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@77946 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/fskmodem.c')
-rw-r--r--main/fskmodem.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/main/fskmodem.c b/main/fskmodem.c
index cd48d484e..f77300979 100644
--- a/main/fskmodem.c
+++ b/main/fskmodem.c
@@ -225,7 +225,9 @@ int fsk_serial(fsk_data *fskd, short *buffer, int *len, int *outbyte)
int i,j,n1,r;
int samples = 0;
int olen;
-
+ int beginlen=*len;
+ int beginlenx;
+
switch (fskd->state) {
/* Pick up where we left off */
case STATE_SEARCH_STARTBIT2:
@@ -253,12 +255,13 @@ int fsk_serial(fsk_data *fskd, short *buffer, int *len, int *outbyte)
beginning of a start bit in the TDD sceanario. It just looks for sufficient
level to maybe, perhaps, guess, maybe that its maybe the beginning of
a start bit, perhaps. This whole thing stinks! */
+ beginlenx=beginlen; /* just to avoid unused war warnings */
if (demodulator(fskd, &fskd->x1, GET_SAMPLE))
return -1;
samples++;
for (;;) {
search_startbit2:
- if (!*len) {
+ if (*len <= 0) {
fskd->state = STATE_SEARCH_STARTBIT2;
return 0;
}
@@ -278,7 +281,7 @@ search_startbit3:
fskd->state = STATE_SEARCH_STARTBIT3;
return 0;
}
- for (; i; i--) {
+ for (; i>0; i--) {
if (demodulator(fskd, &fskd->x1, GET_SAMPLE))
return(-1);
#if 0