Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20141222142531.GA26760@openwall.com>
Date: Mon, 22 Dec 2014 17:25:31 +0300
From: Solar Designer <solar@...nwall.com>
To: john-dev@...ts.openwall.com
Subject: Re: Cygwin

Jim,

On Mon, Dec 22, 2014 at 03:16:39AM -0500, jfoug@....net wrote:
> This should be fixed at a reduced functionality, in commit https://github.com/magnumripper/JohnTheRipper/commit/be4864a003d1bc1a79dbc1cbb2d5861141b4c5f9
> 
> I changed the autoconfig to probe for both GetFileSizeEx and _get_osfhandle, if the build is a cygwin build (since the code in jumbo is ONLY for 32 bit cygwin).  Then within jumbo.c I wrap the fseeko64 and ftello64 functions with #define, and if those functions are not available, the fseek/tello64 revert back to fseek/ftell.

Thanks!  In the fallback code, do you somehow ensure that JtR will
refuse to work with files > 2 GB, rather than seek to wrong offsets?
e.g. on Linux this is achieved by building without large file flags, in
which case open(2) is called (by its libc wrapper) without O_LARGEFILE.
How does Cygwin handle this?

> The caveat here, is your old 32 bit version will have a 2GB file limit, which is what you had a 1.7.9-j5 anyway.  A newer version of cygwin32 will not have this problem.

Sure.

> A secondary caveat is that Makefile.legacy builds of cygwin32 will also have this 2GB limit, since this information is only known from an autoconfig build.  But at this time, the legacy build has been deprecated. We are doing what we can to keep it still building, but at times, it will not always be at the bleeding edge. This is one time.

OK.

> Sorry that I do not have a simple 'patch' to make your older version work, with the existing Jumbo-1.  The only other 'simple' option is to simply take the '#else' fseeko64/ftello64 functions from this commit, and use them.  They are simply passthru into the C-stdio functions, but with 31 bit limitations.  The fix you did (with the comment), would impact any fseek(fp, off, SEEK_END) call. That usage is scattered through the code, often as  a file length method.  In other words, a build with that line commented out, will probably NOT work properly at all.

Of course.  I only made that build to make sure there are no other build
failures, and that the formats' self-tests pass (they do).

Alexander

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.