Thread
-
Use of access(X_OK) check in pg_upgrade
Bruce Momjian <bruce@momjian.us> — 2011-05-18T15:41:51Z
I broke the Win32 build members by using access(X_OK) in pg_upgrade. I have a fix for this but looking at pg_upgrade's exec.c, I see for Win32: if ((buf.st_mode & S_IXUSR) == 0) I am confused why Windows supports S_IXUSR but not X_OK. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +
-
Re: Use of access(X_OK) check in pg_upgrade
Magnus Hagander <magnus@hagander.net> — 2011-05-18T16:12:48Z
On Wed, May 18, 2011 at 11:41, Bruce Momjian <bruce@momjian.us> wrote: > I broke the Win32 build members by using access(X_OK) in pg_upgrade. I > have a fix for this but looking at pg_upgrade's exec.c, I see for > Win32: > > if ((buf.st_mode & S_IXUSR) == 0) > > I am confused why Windows supports S_IXUSR but not X_OK. It doesn't natively - we define it in port/win32.h -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/
-
Re: Use of access(X_OK) check in pg_upgrade
Bruce Momjian <bruce@momjian.us> — 2011-05-18T16:13:58Z
Bruce Momjian wrote: > I broke the Win32 build members by using access(X_OK) in pg_upgrade. I > have a fix for this but looking at pg_upgrade's exec.c, I see for > Win32: > > if ((buf.st_mode & S_IXUSR) == 0) > > I am confused why Windows supports S_IXUSR but not X_OK. I have applied the attached patch to fix this. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +
-
Re: Use of access(X_OK) check in pg_upgrade
Bruce Momjian <bruce@momjian.us> — 2011-05-18T16:16:18Z
Magnus Hagander wrote: > On Wed, May 18, 2011 at 11:41, Bruce Momjian <bruce@momjian.us> wrote: > > I broke the Win32 build members by using access(X_OK) in pg_upgrade. ?I > > have a fix for this but looking at pg_upgrade's exec.c, I see for > > Win32: > > > > ? ? ? ? ? ?if ((buf.st_mode & S_IXUSR) == 0) > > > > I am confused why Windows supports S_IXUSR but not X_OK. > > It doesn't natively - we define it in port/win32.h Sure, but that is defined as _S_IEXEC: #define S_IXUSR _S_IEXEC #define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR) So what is _S_IEXEC. Anyway, execute permission means something different on Win32 for directories so I have a fix applied. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. + -
Re: Use of access(X_OK) check in pg_upgrade
Magnus Hagander <magnus@hagander.net> — 2011-05-18T16:18:37Z
On Wed, May 18, 2011 at 12:16, Bruce Momjian <bruce@momjian.us> wrote: > Magnus Hagander wrote: >> On Wed, May 18, 2011 at 11:41, Bruce Momjian <bruce@momjian.us> wrote: >> > I broke the Win32 build members by using access(X_OK) in pg_upgrade. ?I >> > have a fix for this but looking at pg_upgrade's exec.c, I see for >> > Win32: >> > >> > ? ? ? ? ? ?if ((buf.st_mode & S_IXUSR) == 0) >> > >> > I am confused why Windows supports S_IXUSR but not X_OK. >> >> It doesn't natively - we define it in port/win32.h > > Sure, but that is defined as _S_IEXEC: > > #define S_IXUSR _S_IEXEC > #define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR) > > So what is _S_IEXEC. Anyway, execute permission means something > different on Win32 for directories so I have a fix applied. I'm pretty sure it's mapped to read permissions internally in the API headers. -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/