On Thu, 9 Sep 2021 08:25:44 GMT, Wu Yan <wu...@openjdk.org> wrote:

>> Hi,
>> Please help me review the change to enhance getting  time zone ID from 
>> /etc/localtime on linux.
>> 
>> We use `realpath` instead of `readlink` to obtain the link name of 
>> /etc/localtime, because `readlink` can only read the value of a symbolic of 
>> link, not the canonicalized absolute pathname.
>> 
>> For example, the value of /etc/localtime is 
>> "../usr/share/zoneinfo//Asia/Shanghai", then the linkbuf obtained by 
>> `readlink` is "../usr/share/zoneinfo//Asia/Shanghai", and then the call of 
>> `getZoneName(linkbuf)` will get "/Asia/Shanghai", not "Asia/Shanghai", which 
>> consider as invalid in `ZoneInfoFile.getZoneInfo()`. Using `realpath`, you 
>> can get “/usr/share/zoneinfo/Asia/Shanghai“ directly from “/etc/localtime“.
>> 
>> Thanks,
>> wuyan
>
> Wu Yan has updated the pull request incrementally with one additional commit 
> since the last revision:
> 
>   replace realpath

src/java.base/unix/native/libjava/TimeZone_md.c line 113:

> 111:     }
> 112: }
> 113: 

There are a few `*(right + 1)` references in the loops. Is there any 
possibility that it would run over the buffer?

src/java.base/unix/native/libjava/path_util.h line 31:

> 29: int collapsible(char *names);
> 30: void splitNames(char *names, char **ix);
> 31: void joinNames(char *names, int nc, char **ix);

Are these functions, `collapsible`, `splitNames` and `joinNames` have to be 
non-static?

-------------

PR: https://git.openjdk.java.net/jdk/pull/5327

Reply via email to