Ognyan Kulev wrote:

It seems that the bug is in libstore, not in parted.  When
store_typed_open doesn't find ":" character, it calls store_open.
Unfortunately, it does it incorrectly, and, as a result, store_open is
not called as intended.  There is second bug somewhere in
store_find_class, called by store_typed_open.  Some dlsym magic is used
to find store class.  I'm investigating what exactly goes wrong
(resulting in SIGSEGV) when the store class is not found.  A patch will
follow if I find out.

I send a simple patch for the first bug mentioned.


Regards
--
Ognyan Kulev <[EMAIL PROTECTED]>, "\"Programmer\""
7D9F 66E6 68B7 A62B 0FCF  EB04 80BF 3A8C A252 9782
2003-06-04  Ognyan Kulev  <[EMAIL PROTECTED]>

        * typed.c (store_typed_open): Stores specified as file names are
        correctly detected and passed to store_open.
--- typed.c.~1.6.~      2002-03-14 23:10:01.000000000 +0200
+++ typed.c     2003-06-04 22:34:30.000000000 +0300
@@ -111,11 +111,11 @@
                  struct store **store)
 {
   const struct store_class *cl;
-  const char *clname_end = strchrnul (name, ':');
+  const char *clname_end = strchr (name, ':');
 
-  if (clname_end == name)
+  if (clname_end == 0)
     /* Open NAME with store_open.  */
-    return store_open (name + 1, flags, classes, store);
+    return store_open (name, flags, classes, store);
 
   /* Try to find an existing class by the given name.  */
   cl = store_find_class (name, clname_end, classes);
_______________________________________________
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd

Reply via email to