From: Nate B. <n0...@ne...> - 2003-11-30 14:36:37
|
I discovered a segfault while testing my ft890 code. When I used the 's' command in rigctl's interactive mode it would print the "Split mode: " string plus the value (0 or 1) and then segfaulted. Looking at rigctl.c I gathered the problem was related to the addition of tx_vfo last summer. I had not played with this function since the tx_vfo parameter was added to get_split_vfo, so that variable most likely contained garbage as ft890.c wasn't assigning anything to the tx_vfo variable. Looking at src/misc.c I see that the vfo_str structure is terminated by { RIG_VFO_NONE, NULL }, on line 351. I changed it to {RIG_VFO_NONE, "" }, and then changed line 371 to test for "" instead of NULL in the for loop test and then changed line 375 to return ""; instead of return NULL; After these changes the segmentation fault ceased. I see several other structures in src/misc.c that have their last value, usually XXX_XXX_NONE, using a pointer NULL instead of a string Nul (""). Also, their associated functions test for NULL in a string context and are probably just as vunerable. According to my interpretation of K&R C, the two are not interchangable. Thus, I propose modifying the rest of src/misc.c as above. Thoughts? 73, de Nate >> -- Wireless | Amateur Radio Station N0NB | Successfully Microsoft Internet | n0...@ne... | free since January 1998. Location | Bremen, Kansas USA EM19ov | "Debian, the choice of Amateur radio exams; ham radio; Linux info @ | a GNU generation!" http://www.qsl.net/n0nb/ | http://www.debian.org |