From: Steve Murphy Date: Thu, 2 Aug 2007 17:56:37 +0000 (+0000) Subject: This patch hopefully solves 10141; The user is running with it, and it doesn't appear... X-Git-Tag: 1.2.24~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=726fa701da66f00e0c7aab8bf1c476e823b351ff;p=thirdparty%2Fasterisk.git 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: https://origsvn.digium.com/svn/asterisk/branches/1.2@77942 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/fskmodem.c b/fskmodem.c index 18e845c1e3..2b4dc0bb51 100644 --- a/fskmodem.c +++ b/fskmodem.c @@ -185,6 +185,9 @@ int fsk_serie(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: @@ -212,12 +215,13 @@ of a transmission (what a LOSING design), we cant do it this elegantly */ 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 (demodulador(fskd,&fskd->x1,GET_SAMPLE)) return(-1); samples++; for(;;) { search_startbit2: - if (!*len) { + if (*len <= 0) { fskd->state = STATE_SEARCH_STARTBIT2; return 0; } @@ -235,7 +239,7 @@ search_startbit3: fskd->state = STATE_SEARCH_STARTBIT3; return 0; } - for(;i;i--) { if (demodulador(fskd,&fskd->x1,GET_SAMPLE)) return(-1); + for(;i>0;i--) { if (demodulador(fskd,&fskd->x1,GET_SAMPLE)) return(-1); #if 0 printf("x1 = %5.5f ", fskd->x1); #endif