More possibly silly command line options lead to a segfault
Jesse Bowling
jessebowling at gmail.com
Tue Jul 16 23:46:18 EDT 2013
Michael sent me the following, which seems to prevent the segfault, and
also gives more debug output:
diff -rupN argus-clients-3.0.9.orig/common/argus_util.c
argus-clients-3.0.7.9/common/argus_util.c
--- argus-clients-3.0.9.orig/common/argus_util.c 2013-07-16
23:26:38.176547355 -0400
+++ argus-clients-3.0.7.9/common/argus_util.c 2013-07-16
23:28:02.034657357 -0400
@@ -1919,7 +1919,7 @@ ArgusParseResourceFile (struct ArgusPars
#ifdef ARGUS_SASL
ArgusMinSsf = atoi(optarg);
#ifdef ARGUSDEBUG
- ArgusDebug (2, "ArgusParseResourceFile:
ArgusMinSsf \"%s\" \n", ArgusMinSsf);
+ ArgusDebug (2, "ArgusParseResourceFile:
ArgusMinSsf \"%d\" \n", ArgusMinSsf);
#endif
#endif
}
@@ -1931,7 +1931,7 @@ ArgusParseResourceFile (struct ArgusPars
#ifdef ARGUS_SASL
ArgusMaxSsf = atoi(optarg);
#ifdef ARGUSDEBUG
- ArgusDebug (2, "ArgusParseResourceFile:
ArgusMaxSsf \"%s\" \n", ArgusMaxSsf);
+ ArgusDebug (2, "ArgusParseResourceFile:
ArgusMaxSsf \"%d\" \n", ArgusMaxSsf);
#endif
#endif
}
It seems that debug isn't turned on until the argument is parsed, a
subtlety that previously escaped me. Seems it would be best, in general, to
specify -D as the first argument in an invocation we wish to test...
Cheers,
Jesse
On Tue, Jul 16, 2013 at 11:19 PM, Jesse Bowling <jessebowling at gmail.com>wrote:
> Forgot to mention using argus-clients-3.0.7.9...
>
> Cheers,
>
> Jesse
>
>
> On Tue, Jul 16, 2013 at 10:06 PM, Jesse Bowling <jessebowling at gmail.com>wrote:
>
>> While trying to work out my SASL issue, I've instead found another
>> segfault...
>>
>> Starting program: /usr/local/bin/ra -S localhost -D 10 -F /etc/ra.conf
>> [Thread debugging using libthread_db enabled]
>>
>> Program received signal SIGSEGV, Segmentation fault.
>> 0x0000003baa8480ac in vfprintf () from /lib64/libc.so.6
>> Missing separate debuginfos, use: debuginfo-install
>> cyrus-sasl-lib-2.1.23-13.el6_3.1.x86_64 glibc-2.12-1.107.el6_4.2.x86_64
>> nss-softokn-freebl-3.12.9-11.el6.x86_64 pcre-7.8-6.el6.x86_64
>> zlib-1.2.3-29.el6.
>> x86_64
>> (gdb) where
>> #0 0x0000003baa8480ac in vfprintf () from /lib64/libc.so.6
>> #1 0x0000003baa86f9d2 in vsnprintf () from /lib64/libc.so.6
>> #2 0x000000000043f21a in ArgusDebug (d=2, fmt=0x4a9c50
>> "ArgusParseResourceFile: ArgusMinSsf \"%s\" \n") at ./argus_util.c:18844
>> #3 0x0000000000412f4a in ArgusParseResourceFile (parser=0x7ffff78f1010,
>> file=0x7fffffffe945 "/etc/ra.conf") at ./argus_util.c:1922
>> #4 0x000000000040fa64 in ArgusParseArgs (parser=0x7ffff78f1010, argc=7,
>> argv=0x7fffffffe6e8) at ./argus_util.c:968
>> #5 0x000000000040ef12 in ArgusMainInit (parser=0x7ffff78f1010, argc=7,
>> argv=0x7fffffffe6e8) at ./argus_util.c:782
>> #6 0x00000000004062d6 in main (argc=7, argv=0x7fffffffe6e8) at
>> ./argus_main.c:189
>> (gdb) up
>> #1 0x0000003baa86f9d2 in vsnprintf () from /lib64/libc.so.6
>> (gdb) up
>> #2 0x000000000043f21a in ArgusDebug (d=2, fmt=0x4a9c50
>> "ArgusParseResourceFile: ArgusMinSsf \"%s\" \n") at ./argus_util.c:18844
>> 18844 (void) vsnprintf (ptr, (MAXSTRLEN - strlen(buf)), fmt, ap);
>>
>> (gdb) backtrace full
>> #0 0x0000003baa8480ac in vfprintf () from /lib64/libc.so.6
>> No symbol table info available.
>> #1 0x0000003baa86f9d2 in vsnprintf () from /lib64/libc.so.6
>> No symbol table info available.
>> #2 0x000000000043f21a in ArgusDebug (d=2, fmt=0x4a9c50
>> "ArgusParseResourceFile: ArgusMinSsf \"%s\" \n") at ./argus_util.c:18844
>> ap = {{gp_offset = 24, fp_offset = 48, overflow_arg_area =
>> 0x7fffffffc8b0, reg_save_area = 0x7fffffffc7e0}}
>> buf = "ra[8798.006799f7ff7f0000]: 22:01:05.944695
>> ArgusParseResourceFile: ArgusMinSsf \"", '\000' <repeats 4015 times>
>> ptr = 0x7fffffffb7db "ArgusParseResourceFile: ArgusMinSsf \""
>> tvp = {tv_sec = 1374026465, tv_usec = 944695}
>> #3 0x0000000000412f4a in ArgusParseResourceFile (parser=0x7ffff78f1010,
>> file=0x7fffffffe945 "/etc/ra.conf") at ./argus_util.c:1922
>> retn = 1
>> i = 33
>> len = 11
>> Soption = 0
>> roption = 0
>> found = 0
>> lines = 99
>> strbuf = "RA_MIN_SSF=40\000\000es. Set these variable to control
>> this policy.\n\000\000 TCP\n\000ss.\n", '\000' <repeats 621 times>"\344,
>> \222@\252;", '\000' <repeats 11 times>,
>> "`\315\377\377\377\177\000\000\000\000\000\000\000\000\000\000`\315\377\377\377\177\000\000\003\000\000\000\000\000\000\000\360\227\271\000\000\000\000\000(\b\265M\000\000\000\000\267\233@\252;",
>> '\000' <repeats 11 times>, "
>> \324\066\001\000\000\000\000(\000\000\000\000\000\000\000\260\064n\367\377\177\000\000\000\000\000\000\000\000\000\000\246\222@
>> \252;\000\000\000\210\065n\367\377\177\000\000\320\315\377\377\377\177\000\000t\277\000\000\000\000\000\000\320\315\377\377\377\177\000\000\016\000\000\000\000\000\000\000\230"...
>> str = 0x7fffffffc9f0 "RA_MIN_SSF=40"
>> optarg = 0x7fffffffc9fb "40"
>> ptr = 0x0
>> fd = 0xb9b630
>> #4 0x000000000040fa64 in ArgusParseArgs (parser=0x7ffff78f1010, argc=7,
>> argv=0x7fffffffe6e8) at ./argus_util.c:968
>> op = 70
>> retn = 0
>> rcmdline = 0
>> Scmdline = 1
>> cmdbuf = 0x0
>> str = 0x0
>> getoptStr = 0x4a94b0
>> "a:AbB:c:C:dD:E:e:f:F:GhHiJlL:m:M:nN:Op:P:qQ:r:R:S:s:t:T:uU:Vvw:XzZ:%"
>> host = 0x0
>> filter = 0x0
>> tmparg = 0x0
>> #5 0x000000000040ef12 in ArgusMainInit (parser=0x7ffff78f1010, argc=7,
>> argv=0x7fffffffe6e8) at ./argus_util.c:782
>> i = 2
>> cc = 31
>> noconf = 0
>> tsec = 1374026465
>> envstr = 0x4a7c9e "ARGUSHOME"
>> statbuf = {st_dev = 64768, st_ino = 1180809, st_nlink = 1,
>> st_mode = 33060, st_uid = 0, st_gid = 0, __pad0 = 0, st_rdev = 0, st_size =
>> 17018, st_blksize = 4096, st_blocks = 40, st_atim = {
>> tv_sec = 1374024667, tv_nsec = 483227405}, st_mtim = {tv_sec
>> = 1374024666, tv_nsec = 44209814}, st_ctim = {tv_sec = 1374024666, tv_nsec
>> = 75210193}, __unused = {0, 0, 0}}
>> tz = {tz_minuteswest = 240, tz_dsttime = 0}
>> path = "/root/.rarc", '\000' <repeats 8180 times>
>> #6 0x00000000004062d6 in main (argc=7, argv=0x7fffffffe6e8) at
>> ./argus_main.c:189
>> addr = 0x4a5b90
>> ArgusExitStatus = 0
>> i = 7
>> cc = 46
>> hosts = 0
>> attr = {__size =
>> "[\000\000\000\002\000\000\000`\000\000\000\000\000\000\000\000\020",
>> '\000' <repeats 37 times>, __align = 8589934683}
>> thread_policy = 0
>> thread_param = {__sched_priority = 91}
>> rr_min_priority = 1
>> rr_max_priority = 99
>> status = 0
>> stacksize = 10485760
>>
>> Cheers,
>>
>> Jesse
>>
>> --
>> Jesse Bowling
>>
>>
>
>
> --
> Jesse Bowling
>
>
--
Jesse Bowling
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist1.pair.net/pipermail/argus/attachments/20130716/e59cf678/attachment.html>
More information about the argus
mailing list