Cast away const from AIX' accessx() path argument
authorDagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Thu, 23 Nov 2017 11:29:19 +0000 (11:29 +0000)
committerDagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Tue, 23 Oct 2018 14:05:59 +0000 (15:05 +0100)
Unlike every other platform's access() or equivalent (and as required
by POSIX), AIX doesn't declare the path argument to access() and
accessx() as const char*, so cast the const away.

pp_sys.c

index 00faa77..ab28ed6 100644 (file)
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -213,8 +213,8 @@ void endservent(void);
 #endif
 
 #if !defined(PERL_EFF_ACCESS) && defined(HAS_ACCESSX) && defined(ACC_SELF)
-    /* AIX */
-#   define PERL_EFF_ACCESS(p,f) (accessx((p), (f), ACC_SELF))
+    /* AIX's accessx() doesn't declare its argument const, unlike every other platform */
+#   define PERL_EFF_ACCESS(p,f) (accessx((char*)(p), (f), ACC_SELF))
 #endif