Bug 118530 - newt calls Gpm_Close() even if Gpm_Open() failed
Summary: newt calls Gpm_Close() even if Gpm_Open() failed
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: newt
Version: rawhide
Hardware: i386
OS: Linux
medium
high
Target Milestone: ---
Assignee: Eido Inoue
QA Contact: David Lawrence
URL:
Whiteboard:
Keywords:
Depends On:
Blocks: FC2Blocker FC3Target
TreeView+ depends on / blocked
 
Reported: 2004-03-17 14:37 UTC by Andreas Hasenack
Modified: 2007-11-30 22:10 UTC (History)
1 user (show)

(edit)
Clone Of:
(edit)
Last Closed: 2004-10-15 15:19:56 UTC


Attachments (Terms of Use)

Description Andreas Hasenack 2004-03-17 14:37:43 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6)
Gecko/20040315 Firefox/0.8

Description of problem:
Authconfig segfaults when selecting NIS and ypbind is not installed.
It warns the user about the ypbind requirement but, when one selects
"next", it just segfaults.

Version-Release number of selected component (if applicable):
4.6-1

How reproducible:
Always

Steps to Reproduce:
1. Remove ypbind
2. start authconfig and select NIS. It warns that the ypbind package
is necessary. Click ok.
3. Go to the next screen. It segfaults.

It actually doesn't matter if one chooses NIS, it could also be
kerberos5, as long as a required package is not installed and the newt
callback function is called.

Actual Results:  authconfig segfaults when exiting the first screen in
an attempt to go to the next one.

Expected Results:  It shouldn't segfault.

Additional info:

Comment 1 Andreas Hasenack 2004-04-26 20:56:03 UTC
Problem persists with authconfig-4.6.2-1

Comment 2 Nalin Dahyabhai 2004-05-07 21:32:25 UTC
Unable to reproduce this with test 2 (20040325) or current Raw Hide. 
If you can still reproduce this with Raw Hide, please add a stack
trace to this report.  Meantime, marking worksforme.

Comment 3 Andreas Hasenack 2004-05-10 14:09:36 UTC
with authconfig-4.6.2-1 and newt-0.51.6:
Program received signal SIGSEGV, Segmentation fault.        
mqqqqqqqqqqj                  mqqqqqqqqqj           x                
                                   
0x400afda0 in Gpm_Close () at form.c:326           x                 
                                           x                         
                          
326           next=gpm_stack->next;                x                 
                                           x                         
                          
(gdb) bt                                          
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj      
                                             
#0  0x400afda0 in Gpm_Close () at form.c:326                         
                                                                     
                          
#1  0x400b104a in newtFormRun (co=0x808b890, es=0xbfffe7e0) at
form.c:1066                                                          
                                 
#2  0x400b0a5c in newtRunForm (co=0x808b890) at form.c:816           
                                                                     
                          
#3  0x0804cf2d in getMainChoices (back=0, nisAvail=0, ldapAvail=0,
kerberosAvail=0, smbAvail=0, cacheAvail=0, authInfo=0x8083e00) at
authconfig.c:704                 
#4  0x0804d096 in getChoices (back=0, nisAvail=0, ldapAvail=0,
kerberosAvail=0, smbAvail=0, cacheAvail=0, authInfo=0x8083e00) at
authconfig.c:736                     
#5  0x0804f9f8 in main (argc=0, argv=0x0) at authconfig.c:1249       
                                                                     
                          
(gdb) frame 0                                                        
                                                                     
                          
#0  0x400afda0 in Gpm_Close () at form.c:326ço> seleciona   |  <F12>
próxima tela                                                         
                           
326           next=gpm_stack->next;
(gdb) p gpm_stack->next
Cannot access memory at address 0x10
(gdb) p gpm_stack
$2 = (Gpm_Stst *) 0x0


Comment 4 Andreas Hasenack 2004-05-10 14:53:16 UTC
I couldn't reproduce this in fedora core 2 test3, however. I'll check
version numbers and patches for the relevant programs and libs.

Comment 5 Andreas Hasenack 2004-05-10 15:51:39 UTC
I added this quick patch and it stopped segfaulting. Not sure yet if
it's the right way, I'm not familiar with this code:
--- newt-0.51.6/form.c~ 2003-01-04 17:15:25.000000000 -0200
+++ newt-0.51.6/form.c  2004-05-10 12:45:06.532824552 -0300
@@ -893,6 +893,7 @@
     struct timeval nextTimeout, now, timeout;
 #ifdef USE_GPM
     int x, y;
+   int success;
     Gpm_Connect conn;
     Gpm_Event event;

@@ -902,7 +903,7 @@
     conn.minMod      = 0;
     conn.maxMod      = 0;

-    Gpm_Open(&conn, 0);
+    success = Gpm_Open(&conn, 0);
 #endif

     newtFormSetSize(co);
@@ -1062,6 +1063,7 @@
     }
     newtRefresh();
 #ifdef USE_GPM
+   if (success > 0)
     Gpm_Close();
 #endif
 }


Comment 6 Nalin Dahyabhai 2004-05-10 21:06:06 UTC
If that affects it, then I'm really confused.  AFAIK newt's gpm code
isn't even compiled in.  Cc'ing Adrian, the current newt maintainer.

Comment 7 Andreas Hasenack 2004-05-10 21:10:18 UTC
Uhh, I guess I was not clear enough. My newt build explicitly enables
gpm support. Anyway, changing component to newt, nothing to do with
authconfig indeed.

Comment 8 Eido Inoue 2004-05-11 01:47:47 UTC
the most recent build of gpm changes the way Gpm_Open() returns. Have
you tested the pkg in the latest rawhide?


Comment 9 Eido Inoue 2004-05-11 01:52:36 UTC
rechanging the component-- obviously newt needs to check the return
value of Gpm_Open() so it doesn't try to close a non-existant handle


Note You need to log in before you can comment on or make changes to this bug.