Review Request JDK-7119643: It is not possible to read files with a path longer than 2048 characters

Poonam Bajaj poonam.bajaj at oracle.com
Mon Mar 24 02:55:07 UTC 2014


Hi Dmitry,

On 3/24/2014 12:49 AM, Dmitry Samersoff wrote:
> Poonam,
>
> 1.
>
> MAXPATHLEN == PATH_MAX and it's a system constant that comes from
> sys/param.h and linux/limits.h so current behavior of hotspot is
> absolutely correct.
>
> Moreover, we uses MAXPATHLEN in many places in os_*.cpp files, so this
> patch makes hotspot behavior inconsistent.
>
> Typical value of PATH_MAX is 4096 so it's unclean for me why we have
> problems with 2048 bytes file.
>
> We probably should check our reference build platform.
The purpose of this change is to revert back to the same behavior as it 
was before the  fix for 6348631 where we didn't have any path limitation 
in os::open() and os::stat() functions.

But yes, you are right. We have the following in sys/param.h and 
linux/limits.h for the maximum allowed path length on linux platforms:
#define PATH_MAX        4096    /* # chars in a path name including nul */
#define MAXPATHLEN      PATH_MAX

and MAXPATHLEN is also used in os_linux.cpp. So, if we have to insert 
the path limitation in os::open() and os::stat(), we should be using 
MAXPATHLEN at all the places in os_linux.cpp. Why was MAX_PATH defined 
and to a different value than MAXPATHLEN which is inconsistent with the 
linux definition?

> 2.
>
> Test could be a pure java.
Ok, will do.

Thanks,
Poonam
>
> -Dmitry
>
> On 2014-03-21 16:52, Poonam Bajaj wrote:
>> Hi,
>>
>> Review request for:
>> JDK-7119643<https://bugs.openjdk.java.net/browse/JDK-7119643>: It is
>> not possible to read files with a path longer than 2048 characters
>>
>> Problem and Fix: This bug is a regression from 6u29 and exists only on
>> Linux platform. With the fix for 6348631, a limit of MAX_PATH (2K) got
>> introduced on the file path length in the os::open() and os::stat()
>> functions in os_linux.cpp. These changes remove that limit. These
>> changes also add a regression test case to check that the files having
>> path longer than 2048 are read without any error.
>>
>> Webrev: http://cr.openjdk.java.net/~poonam/7119643/webrev.00/
>>
>> This fix needs to go into 9, 8u, 7u and 6u.
>>
>> Thanks,
>> Poonam
>>
>


More information about the hotspot-runtime-dev mailing list