[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Bug#196085: [Fwd: Re: Bug#196085: Device files are not accepted under th
From: |
Ognyan Kulev |
Subject: |
Bug#196085: [Fwd: Re: Bug#196085: Device files are not accepted under the Hurd] |
Date: |
Wed, 04 Jun 2003 22:51:36 +0300 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3.1) Gecko/20030527 Debian/1.3.1-2 |
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 <ogi@fmi.uni-sofia.bg>, "\"Programmer\""
7D9F 66E6 68B7 A62B 0FCF EB04 80BF 3A8C A252 9782
2003-06-04 Ognyan Kulev <ogi@fmi.uni-sofia.bg>
* 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);