Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

cvs admin segfaults



cvs admin -m1.58:"`cat /tmp/m`" network
segfault
bt

#0  0x000000000040731e in admin (argc=4, argv=0x7f7ffc31a080)
    at /usr/src/external/gpl2/xcvs/dist/src/admin.c:330
#1  0x000000000042dd11 in main (argc=4, argv=0x7f7ffc31a080)
    at /usr/src/external/gpl2/xcvs/dist/src/main.c:1167

Seems that the config object isn't allocated at this point, the attached patch fixes this issue. I can't easily see where config is loaded, so I don't know if it's correct.

Thanks

Roy

Index: admin.c
===================================================================
RCS file: /cvsroot/src/external/gpl2/xcvs/dist/src/admin.c,v
retrieving revision 1.3
diff -u -p -r1.3 admin.c
--- admin.c     10 Apr 2009 11:20:29 -0000      1.3
+++ admin.c     14 May 2009 18:13:59 -0000
@@ -327,7 +327,8 @@ admin (int argc, char **argv)
     while ((c = getopt (argc, argv,
                        "+ib::c:a:A:e::l::u::LUn:N:m:o:s:t::IqxV:k:")) != -1)
     {
-       if (c != 'q' && !strchr (config->UserAdminOptions, c))
+       if (c != 'q' &&
+           (config == NULL || !strchr (config->UserAdminOptions, c)))
            only_allowed_options = false;
 
        switch (c)


Home | Main Index | Thread Index | Old Index