This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Fixed embed.fnc entry for S_forbid_setid() and picked up a change in
[perl5.git] / proto.h
diff --git a/proto.h b/proto.h
index 2a7c6d8..aa4808e 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -1585,8 +1585,6 @@ PERL_CALLCONV SV* Perl_vnewSVpvf(pTHX_ const char* pat, va_list* args)
                        __attribute__nonnull__(pTHX_1);
 
 PERL_CALLCONV SV*      Perl_newSVrv(pTHX_ SV* rv, const char* classname)
-                       __attribute__malloc__
-                       __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1);
 
 PERL_CALLCONV SV*      Perl_newSVsv(pTHX_ SV* old)
@@ -1972,9 +1970,6 @@ PERL_CALLCONV void        Perl_save_sptr(pTHX_ SV** sptr)
 PERL_CALLCONV SV*      Perl_save_svref(pTHX_ SV** sptr)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV SV**     Perl_save_threadsv(pTHX_ PADOFFSET i)
-                       __attribute__noreturn__;
-
 PERL_CALLCONV OP*      Perl_sawparens(pTHX_ OP* o);
 PERL_CALLCONV OP*      Perl_scalar(pTHX_ OP* o);
 PERL_CALLCONV OP*      Perl_scalarkids(pTHX_ OP* o);
@@ -2192,7 +2187,7 @@ PERL_CALLCONV STRLEN      Perl_sv_len_utf8(pTHX_ SV* sv);
 PERL_CALLCONV void     Perl_sv_magic(pTHX_ SV* sv, SV* obj, int how, const char* name, I32 namlen)
                        __attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV MAGIC *  Perl_sv_magicext(pTHX_ SV* sv, SV* obj, int how, const MGVTBL *vtbl, const char* name, I32 namlen)
+PERL_CALLCONV MAGIC *  Perl_sv_magicext(pTHX_ SV* sv, SV* obj, int how, MGVTBL *vtbl, const char* name, I32 namlen)
                        __attribute__nonnull__(pTHX_1);
 
 PERL_CALLCONV SV*      Perl_sv_mortalcopy(pTHX_ SV* oldsv)
@@ -2711,12 +2706,10 @@ PERL_CALLCONV OP *      Perl_my_attrs(pTHX_ OP *o, OP *attrs)
 PERL_CALLCONV void     Perl_boot_core_xsutils(pTHX);
 #if defined(USE_ITHREADS)
 PERL_CALLCONV PERL_CONTEXT*    Perl_cx_dup(pTHX_ PERL_CONTEXT* cx, I32 ix, I32 max, CLONE_PARAMS* param)
-                       __attribute__malloc__
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_4);
 
 PERL_CALLCONV PERL_SI* Perl_si_dup(pTHX_ PERL_SI* si, CLONE_PARAMS* param)
-                       __attribute__malloc__
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_2);
 
@@ -2727,46 +2720,36 @@ PERL_CALLCONV ANY*      Perl_ss_dup(pTHX_ PerlInterpreter* proto_perl, CLONE_PARAMS*
                        __attribute__nonnull__(pTHX_2);
 
 PERL_CALLCONV void*    Perl_any_dup(pTHX_ void* v, const PerlInterpreter* proto_perl)
-                       __attribute__malloc__
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_2);
 
 PERL_CALLCONV HE*      Perl_he_dup(pTHX_ const HE* e, bool shared, CLONE_PARAMS* param)
-                       __attribute__malloc__
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_3);
 
 PERL_CALLCONV HEK*     Perl_hek_dup(pTHX_ HEK* e, CLONE_PARAMS* param)
-                       __attribute__malloc__
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_2);
 
 PERL_CALLCONV REGEXP*  Perl_re_dup(pTHX_ const REGEXP* r, CLONE_PARAMS* param)
-                       __attribute__malloc__
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_2);
 
 PERL_CALLCONV PerlIO*  Perl_fp_dup(pTHX_ PerlIO* fp, char type, CLONE_PARAMS* param)
-                       __attribute__malloc__
-                       __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_3);
 
 PERL_CALLCONV DIR*     Perl_dirp_dup(pTHX_ DIR* dp)
-                       __attribute__malloc__
                        __attribute__warn_unused_result__;
 
 PERL_CALLCONV GP*      Perl_gp_dup(pTHX_ GP* gp, CLONE_PARAMS* param)
-                       __attribute__malloc__
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_2);
 
 PERL_CALLCONV MAGIC*   Perl_mg_dup(pTHX_ MAGIC* mg, CLONE_PARAMS* param)
-                       __attribute__malloc__
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_2);
 
 PERL_CALLCONV SV*      Perl_sv_dup(pTHX_ const SV* sstr, CLONE_PARAMS* param)
-                       __attribute__malloc__
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_2);
 
@@ -2780,7 +2763,6 @@ PERL_CALLCONV PTR_TBL_t*  Perl_ptr_table_new(pTHX)
                        __attribute__warn_unused_result__;
 
 PERL_CALLCONV void*    Perl_ptr_table_fetch(pTHX_ PTR_TBL_t *tbl, const void *sv)
-                       __attribute__malloc__
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);
@@ -2823,7 +2805,11 @@ PERL_CALLCONV int        Perl_sv_release_IVX(pTHX_ SV *sv)
 
 PERL_CALLCONV void     Perl_sv_nosharing(pTHX_ SV *sv);
 /* PERL_CALLCONV void  Perl_sv_nolocking(pTHX_ SV *sv); */
+#ifdef NO_MATHOMS
 /* PERL_CALLCONV void  Perl_sv_nounlocking(pTHX_ SV *sv); */
+#else
+PERL_CALLCONV void     Perl_sv_nounlocking(pTHX_ SV *sv);
+#endif
 PERL_CALLCONV int      Perl_nothreadhook(pTHX);
 
 END_EXTERN_C
@@ -2864,6 +2850,11 @@ STATIC void      S_require_errno(pTHX_ GV *gv)
 
 #endif
 
+PERL_CALLCONV void*    Perl_get_arena(pTHX_ int svtype)
+                       __attribute__malloc__
+                       __attribute__warn_unused_result__;
+
+
 #if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
 STATIC void    S_hsplit(pTHX_ HV *hv)
                        __attribute__nonnull__(pTHX_1);
@@ -3182,9 +3173,7 @@ PERL_CALLCONV void        Perl_Slab_Free(pTHX_ void *op)
 
 #if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
 STATIC void    S_find_beginning(pTHX);
-STATIC void    S_forbid_setid(pTHX_ const char * s)
-                       __attribute__nonnull__(pTHX_1);
-
+STATIC void    S_forbid_setid(pTHX_ const char flag, const int suidscript);
 STATIC void    S_incpush(pTHX_ const char *dir, bool addsubdirs, bool addoldvers, bool usesep, bool canrelocate);
 STATIC void    S_init_interp(pTHX);
 STATIC void    S_init_ids(pTHX);
@@ -3199,14 +3188,15 @@ STATIC void     S_my_exit_jump(pTHX)
                        __attribute__noreturn__;
 
 STATIC void    S_nuke_stacks(pTHX);
-STATIC void    S_open_script(pTHX_ const char *scriptname, bool dosearch, SV *sv)
+STATIC int     S_open_script(pTHX_ const char *scriptname, bool dosearch, SV *sv, int *suidscript)
                        __attribute__nonnull__(pTHX_1)
-                       __attribute__nonnull__(pTHX_3);
+                       __attribute__nonnull__(pTHX_3)
+                       __attribute__nonnull__(pTHX_4);
 
 STATIC void    S_usage(pTHX_ const char *name)
                        __attribute__nonnull__(pTHX_1);
 
-STATIC void    S_validate_suid(pTHX_ const char *validarg, const char *scriptname)
+STATIC void    S_validate_suid(pTHX_ const char *validarg, const char *scriptname, int fdscript, int suidscript)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2);