Hi,

We will fix that for the next glipper version. We will use gconf for the
preferences.

Bye

Am Sonntag, den 05.08.2007, 11:13 +0200 schrieb Philipp Kern:
> Package: glipper
> Version: 0.95.1-1
> Severity: important
> 
> Hi Neil, hi Sven,
> 
> Glipper uses binary files to store both history and preferences. The
> fields are just dumped from memory to disk, without any endianess
> conversion, nor with fixed field widths, it uses the system's integer
> size (size_t) to determine how long the field should be.
> 
> This means that Glipper's preferences and history files could not be
> used in a heterogeneous environment with different architectures. We
> have the home directory on NFS and both x86 and x86_64 machines
> accessing it.
> 
> Actually Glipper crashed in memcpy/libc6 caused by this code, on x86_64:
> | (src/main.c:516)
> | size_t len;
> | fread(&len, sizeof(size_t), 1, prefFile);
> | if (!feof(prefFile))
> | {
> |   keyComb = malloc(len+1);
> |   fgets(keyComb, len+1, prefFile);
> 
> As 64 bits were read into `len' instead of the 32 bits saved the malloc
> and fgets just look funny here and it's nice that it just crashed and
> did not allocate vast amounts of memory instead.
> 
> That's the code to read the preferences file. Could it be ported to use
> another configuration backend, like e.g. gconf? For the history file,
> which shares the same problem, you could probably "fix" the issue by
> inserting a header which specifies integer size, endianess (and
> version) and either discard its content when the current compile
> settings differ or do appropriate conversions.
> 
> Thanks for your time reading so far, it would be nice if this could be
> fixed upstream in Glipper.
> 
> Kind regards,
> Philipp Kern
> Debian Developer



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to