HylaFAX The world's
most advanced open source fax server
|
|
[
Date Prev][
Date Next][
Thread Prev][
Thread Next]
[
Date Index]
[
Thread Index]
BSD/OS problem (more info)
The problem isn't parsing the dialrules file it is actually parsing the
phone number! I traced through it with dialtest and gdb. Here is a little
more info:
speedy: {1} % ./dialtest -v /var/spool/fax/etc/dialrules
/var/spool/fax/etc/dialrules: line 0: Define AreaCode = "415"
/var/spool/fax/etc/dialrules: line 0: Define CountryCode = "1"
/var/spool/fax/etc/dialrules: line 0: Define InternationalPrefix = "011"
/var/spool/fax/etc/dialrules: line 0: Define LongDistancePrefix = "1"
/var/spool/fax/etc/dialrules: line 16: Define Area = "415"
/var/spool/fax/etc/dialrules: line 17: Define Country = "1"
/var/spool/fax/etc/dialrules: line 18: Define IDPrefix = "011"
/var/spool/fax/etc/dialrules: line 19: Define LDPrefix = "1"
/var/spool/fax/etc/dialrules: line 21: Define WS = " "
/var/spool/fax/etc/dialrules: line 30: CanonicalNumber := [
/var/spool/fax/etc/dialrules: line 31: "#.*" = ""
/var/spool/fax/etc/dialrules: line 32: "[abcABC]" = "2"
/var/spool/fax/etc/dialrules: line 33: "[defDEF]" = "3"
/var/spool/fax/etc/dialrules: line 34: "[ghiGHI]" = "4"
/var/spool/fax/etc/dialrules: line 35: "[jklJKL]" = "5"
/var/spool/fax/etc/dialrules: line 36: "[mnoMNO]" = "6"
/var/spool/fax/etc/dialrules: line 37: "[prsPRS]" = "7"
/var/spool/fax/etc/dialrules: line 38: "[tuvTUV]" = "8"
/var/spool/fax/etc/dialrules: line 39: "[wxyWXY]" = "9"
/var/spool/fax/etc/dialrules: line 40: "[^+0-9]+" = ""
/var/spool/fax/etc/dialrules: line 41: "^011" = "+"
/var/spool/fax/etc/dialrules: line 42: "^1" = "+1"
/var/spool/fax/etc/dialrules: line 43: "^[^+]" = "+1415&"
/var/spool/fax/etc/dialrules: line 44: ]
/var/spool/fax/etc/dialrules: line 50: DialString := [
/var/spool/fax/etc/dialrules: line 51: "[- .]+" = ""
/var/spool/fax/etc/dialrules: line 52: "[abcABC]" = "2"
/var/spool/fax/etc/dialrules: line 53: "[defDEF]" = "3"
/var/spool/fax/etc/dialrules: line 54: "[ghiGHI]" = "4"
/var/spool/fax/etc/dialrules: line 55: "[jklJKL]" = "5"
/var/spool/fax/etc/dialrules: line 56: "[mnoMNO]" = "6"
/var/spool/fax/etc/dialrules: line 57: "[prsPRS]" = "7"
/var/spool/fax/etc/dialrules: line 58: "[tuvTUV]" = "8"
/var/spool/fax/etc/dialrules: line 59: "[wxyWXY]" = "9"
/var/spool/fax/etc/dialrules: line 60: "^[+]1" = "1"
/var/spool/fax/etc/dialrules: line 61: "^[+]" = "011"
/var/spool/fax/etc/dialrules: line 62: ]
ready> 757-0248
input = "757-0248"
Apply CanonicalNumber rules to "757-0248"
Assertion failed "Str::remove: Invalid range", file "Str.c++" line 231.
Abort trap (core dumped)
------------------------------------------
speedy: {1} % gdb dialtest dialtest.core
GDB is free software and you are welcome to distribute copies of it
under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.15.1 (i386-unknown-bsdi2.1),
Copyright 1995 Free Software Foundation, Inc...
Core was generated by `dialtest'.
Program terminated with signal 6, Abort trap.
#0 0x17385 in kill ()
(gdb) bt
#0 0x17385 in kill ()
#1 0x168e3 in abort ()
#2 0x4f80 in _fxassert () at fxassert.c:33
#3 0x1ec2 in fxStr::remove (this=0xefbfd63c, start=3, chars=4294967292)
at Str.c++:231
#4 0x491a in DialStringRules::applyRules (this=0xefbfdb50, name=@0xefbfd670,
s=@0xefbfd6e8) at DialRules.c++:374
#5 0x4af4 in DialStringRules::canonicalNumber (this=0xefbfdb50, s=@0xefbfd6e8)
at DialRules.c++:426
#6 0x16c3 in main (argc=3, argv=0xefbfdb98) at .././util/dialtest.c++:120
(gdb) q
---------------------------------
The error comes about because in DialRules.c++ on lines 352-353:
352 int ix = rule.pat->StartOfMatch();
353 int len = rule.pat->EndOfMatch() - ix;
len ends up being less than 0. ix = 3 and len = -4.
ugh
Steve
---
Steve Roderick ProAxis Communications, Inc.
steve@proaxis.com Internet Access Provider
(541) 757-0248
>From POPmail Wed Feb 19 08:18:39 1997