Hi, On Tue, Jan 08, 2013 at 08:18:11PM -0200, Gustavo Sverzut Barbieri wrote: > Hi Lutin, > > both seem correct to me. Let's wait for others to chime in, but they should > be okay. > > > On Tue, Jan 8, 2013 at 8:11 PM, Albin Tonnerre <[email protected]> wrote: > > > Hi, > > > > I recently uploaded Eet 1.7.4 to Debian; this was the first version to > > have the testsuite enabled and to my suprise, it failed on all > > bigendian architectures > > (https://buildd.debian.org/status/package.php?p=eet&suite=experimental) > > > > I tried to find the cause of the issue, and it would seem there's a > > code path in eet_data_image_lossless_compressed_convert that fails to > > appropriately convert the input data to little endian before > > compressing it; this data is then uncompressed in > > _eet_data_image_decode_inside and, on bigend machines, converted > > "back" to bigend which obviously yields incorrect results. > > > > I've used the following patch to solve the issue, but since I'm no eet > > expert I'd gladly appreciate any input :) > > > > diff --git a/src/lib/eet_image.c b/src/lib/eet_image.c > > index 7116a3c..5a37bf2 100644 > > --- a/src/lib/eet_image.c > > +++ b/src/lib/eet_image.c > > @@ -746,13 +746,26 @@ eet_data_image_lossless_compressed_convert(int > > *size, > > > > { > > unsigned char *d, *comp; > > - int *header, ret, ok = 1; > > + int *header, *bigend_data, ret, ok = 1; > > uLongf buflen = 0; > > > > buflen = (((w * h * 101) / 100) + 3) * 4; > > ret = LZ4_compressBound((w * h * 4)); > > if ((ret > 0) && ((uLongf)ret > buflen)) buflen = ret; > > - > > + > > + if (_eet_image_words_bigendian) > > + { > > + int i; > > + int *bigend_data = (int *) malloc(w * h * 4);
Shadowed declaration of bigend_data here. > > + > > + if (!bigend_data) return NULL; > > + > > + memcpy(bigend_data, data, w * h * 4); > > + for (i = 0; i < w * h; i++) SWAP32(bigend_data[i]); > > + > > + data = (const char *) bigend_data; > > + } > > + > > comp = malloc(buflen); > > if (!comp) return NULL; > > > > @@ -803,6 +816,7 @@ eet_data_image_lossless_compressed_convert(int > > *size, > > unsigned int i; > > > > for (i = 0; i < 8; i++) SWAP32(header[i]); > > + free(bigend_data); > > } > > > > memcpy(d + (8 * sizeof(int)), comp, buflen); > > > > > > > > On a related matter, the testsuite also dies with SIGBUS on SPARC due > > to what seems to be an arbitrarily-aligned void* used as an int* in > > eet_cipher. The following patch fixes the issue for me: > > > > diff --git a/src/lib/eet_cipher.c b/src/lib/eet_cipher.c > > index 3317538..4e1433c 100644 > > --- a/src/lib/eet_cipher.c > > +++ b/src/lib/eet_cipher.c > > @@ -706,9 +706,13 @@ eet_identity_check(const void *data_base, > > return NULL; > > > > /* Get the header */ > > - magic = ntohl(header[0]); > > - sign_len = ntohl(header[1]); > > - cert_len = ntohl(header[2]); > > + memcpy(&magic, header, sizeof(int)); > > + memcpy(&sign_len, header+1, sizeof(int)); > > + memcpy(&cert_len, header+2, sizeof(int)); > > + > > + magic = ntohl(magic); > > + sign_len = ntohl(sign_len); > > + cert_len = ntohl(cert_len); > > > > /* Verify the header */ > > if (magic != EET_MAGIC_SIGN) > > > > > > Please let me know if you want me to rework the patches, submit them > > with ChangeLog entries for the stable releases or whatever :) > > > > Cheers, > > -- > > Albin > > > > > > ------------------------------------------------------------------------------ > > Master SQL Server Development, Administration, T-SQL, SSAS, SSIS, SSRS > > and more. Get SQL Server skills now (including 2012) with LearnDevNow - > > 200+ hours of step-by-step video tutorials by Microsoft MVPs and experts. > > SALE $99.99 this month only - learn more at: > > http://p.sf.net/sfu/learnmore_122512 > > _______________________________________________ > > enlightenment-devel mailing list > > [email protected] > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > > > > -- > Gustavo Sverzut Barbieri > http://profusion.mobi embedded systems > -------------------------------------- > MSN: [email protected] > Skype: gsbarbieri > Mobile: +55 (19) 9225-2202 > ------------------------------------------------------------------------------ > Master SQL Server Development, Administration, T-SQL, SSAS, SSIS, SSRS > and more. Get SQL Server skills now (including 2012) with LearnDevNow - > 200+ hours of step-by-step video tutorials by Microsoft MVPs and experts. > SALE $99.99 this month only - learn more at: > http://p.sf.net/sfu/learnmore_122512 > _______________________________________________ > enlightenment-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Leandro Dorileo ProFUSION embedded systems http://profusion.mobi ------------------------------------------------------------------------------ Master Java SE, Java EE, Eclipse, Spring, Hibernate, JavaScript, jQuery and much more. Keep your Java skills current with LearnJavaNow - 200+ hours of step-by-step video tutorials by Java experts. SALE $49.99 this month only -- learn more at: http://p.sf.net/sfu/learnmore_122612 _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
