diff options
author | Perl 5 Porters <perl5-porters@africa.nicoh.com> | 1997-02-25 13:12:02 +1200 |
---|---|---|
committer | Chip Salzenberg <chip@atlantic.net> | 1997-02-25 13:12:02 +1200 |
commit | 1e422769b80038b1bfc4f5af33438b87cc1c7a22 (patch) | |
tree | 0f5d892c1c73cebd66d4336f658f001935d92898 /vms | |
parent | 2f9daededa74ef1264bd2c46743008f84bff0cfc (diff) | |
download | perl-1e422769b80038b1bfc4f5af33438b87cc1c7a22.tar.gz |
[inseparable changes from match from perl-5.003_90 to perl-5.003_91]
BUILD PROCESS
Subject: Sanity check linking with $libs
Date: Tue, 25 Feb 1997 14:13:45 -0500 (EST)
From: Andy Dougherty <doughera@fractal.phys.lafayette.edu>
Files: Configure
Msg-ID: <Pine.SOL.3.95q.970225221634.2486A-100000@fractal.lafayette.edu>
(applied based on p5p patch as commit 5c37e92e59bb92e49d5a21017cd6dc066a28ddea)
Subject: Flush stdout when printing $randbits guess
From: Chip Salzenberg <chip@perl.com>
Files: Configure
Subject: Configure changes for Irix nm
From: Helmut Jarausch <helmutjarausch@unknown>
Files: Configure
CORE LANGUAGE CHANGES
Subject: Fix perl_call_*() when !G_EVAL
Date: Tue, 25 Feb 1997 02:25:56 -0500
From: Gurusamy Sarathy <gsar@engin.umich.edu>
Files: MANIFEST gv.c interp.sym perl.c perl.h pp_ctl.c pp_sys.c t/op/runlevel.t
Msg-ID: <199702250725.CAA09192@aatma.engin.umich.edu>, <199702251925.OAA15498@aatma.engin.umich.edu>, <199702252200.RAA16853@aatma.engin.umich.edu>
(applied based on p5p patch as commits 40f788c454d994616342c409de5b5d181ad9b8af, and 907a881cde89c56bc61d3f314c0efb8754ca472a, 20efc0829f6564c44574762adb07e8865bc14026)
Subject: Fix taint tests for writeable dirs in $ENV{PATH}
From: Chip Salzenberg <chip@perl.com>
Files: mg.c mg.h pod/perlsec.pod taint.c
Subject: Forbid tainted parameters for truncate()
From: Chip Salzenberg <chip@perl.com>
Files: pp_sys.c
Subject: Don't taint magic hash keys unnecessarily
Date: Fri, 28 Feb 1997 02:11:26 -0500 (EST)
From: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU>
Files: hv.c
private-msgid: <01IFXL9TY74Y00661G@hmivax.humgen.upenn.edu>
CORE PORTABILITY
Subject: VMS patches post _90
Date: Fri, 28 Feb 1997 15:26:33 -0500 (EST)
From: Charles Bailey <bailey@HMIVAX.HUMGEN.UPENN.EDU>
Files: doio.c mg.c perl.h pp_hot.c t/op/rand.t t/op/taint.t taint.c vms/descrip.mms vms/vms.c
private-msgid: <01IFYDE5ZT7O005A53@hmivax.humgen.upenn.edu>
Subject: Fix taint check in system() and exec() under VMS and OS/2
From: Chip Salzenberg <chip@perl.com>
Files: pp_sys.c
Subject: If _XOPEN_VERSION >= 4, socket length parameters are size_t
From: Michael H. Moran <mhm@austin.ibm.com>
Files: perl.h pp_sys.c
Subject: Make dooneliner() compile again
From: Chip Salzenberg <chip@perl.com>
Files: pp_sys.c
DOCUMENTATION
Subject: Move ENVIRONMENT from perl.pod to perlrun.pod
From: Chip Salzenberg <chip@perl.com>
Files: pod/perl.pod pod/perlrun.pod
Subject: Describe PERL_DEBUG_MSTATS in perlrun.pod
From: Nat <gnat@frii.com>
Files: pod/perlrun.pod
Subject: Fix references to perlbug
From: Chip Salzenberg <chip@perl.com>
Files: pod/perl.pod pod/perldelta.pod pod/perllocale.pod pod/perltoc.pod
OTHER CORE CHANGES
Subject: Short-circuit duplicate study() calls
From: Chip Salzenberg <chip@perl.com>
Files: pp.c
Subject: Call sv_set[iu]v() with [IU]V parameter, not [IU]32
From: Chip Salzenberg <chip@perl.com>
Files: perl.c pp.c pp_sys.c toke.c util.c
Subject: Clean up and document API for hashes
Date: Tue, 25 Feb 1997 13:24:02 -0500
From: Gurusamy Sarathy <gsar@engin.umich.edu>
Files: hv.c hv.h pod/perldelta.pod pod/perlguts.pod
Msg-ID: <199702251824.NAA14859@aatma.engin.umich.edu>
(applied based on p5p patch as commit a61fe43df197fcc70e6f310c06ee17d52b606c45)
Subject: pp_undef was not always freeing memory
Date: Thu, 27 Feb 1997 01:53:51 -0500 (EST)
From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Files: pp.c
Msg-ID: <199702270653.BAA13949@monk.mps.ohio-state.edu>
(applied based on p5p patch as commit 1da885048b65b5be1bd3077c6fc45f92c567e1b5)
Subject: Don't examine rx->exec_tainted if pregexec() fails
From: Chip Salzenberg <chip@perl.com>
Files: pp_hot.c
TESTS
Subject: New test op/taint.t
Date: Tue, 25 Feb 1997 11:36:53 -0800 (PST)
From: Tom Phoenix <rootbeer@teleport.com>
Files: MANIFEST t/op/taint.t
private-msgid: <Pine.GSO.3.95q.970225101328.18288M-100000@kelly.teleport.com
Subject: Patch to t/op/rand.t
Date: Tue, 25 Feb 1997 18:19:34 -0800 (PST)
From: Tom Phoenix <rootbeer@teleport.com>
Files: t/op/rand.t
private-msgid: <Pine.GSO.3.95q.970225181321.13796Q-100000@kelly.teleport.com
UTILITIES
Subject: Add --lax option to pod2man; use it in perldoc
From: Nat <gnat@frii.com>
Files: pod/pod2man.PL utils/perldoc.PL
Subject: Eliminate dead code in pod2man
From: Chip Salzenberg <chip@perl.com>
Files: pod/pod2man.PL
Diffstat (limited to 'vms')
-rw-r--r-- | vms/config.vms | 2 | ||||
-rw-r--r-- | vms/descrip.mms | 15 | ||||
-rw-r--r-- | vms/vms.c | 40 |
3 files changed, 45 insertions, 12 deletions
diff --git a/vms/config.vms b/vms/config.vms index 2cec4f20be..5a24c33609 100644 --- a/vms/config.vms +++ b/vms/config.vms @@ -76,7 +76,7 @@ * when Perl is built. Please do not change it by hand; make * any changes to FndVers.Com instead. */ -#define ARCHLIB_EXP "/perl_root/lib/VMS_VAX/5_00390" /**/ +#define ARCHLIB_EXP "/perl_root/lib/VMS_VAX/5_00391" /**/ #define ARCHLIB ARCHLIB_EXP /*config-skip*/ /* ARCHNAME: diff --git a/vms/descrip.mms b/vms/descrip.mms index 358ec3553f..fc264ff99d 100644 --- a/vms/descrip.mms +++ b/vms/descrip.mms @@ -65,7 +65,7 @@ OBJVAL = $(MMS$TARGET_NAME)$(O) .endif # Updated by fndvers.com -- do not edit by hand -PERL_VERSION = 5_00390# +PERL_VERSION = 5_00391# ARCHDIR = [.lib.$(ARCH).$(PERL_VERSION)] @@ -796,6 +796,19 @@ perly$(O) : perly.c, perly.h, $(h) test : all [.t.lib]vmsfspec.t - @[.VMS]Test.Com "$(E)" +archify : all + @ Write Sys$Output "Moving files to architecture-specific locations for $(ARCH)" + archroot = "$(ARCHAUTO)" - "]" + "...]" + Backup/Log/Verify [.lib.auto...]*.*;/Exclude=(*.al,*.ix) 'archroot' + Delete/Log/NoConfirm [.lib.auto...]*.*;*/exclude=(*.al,*.ix) + Delete/Log/NoConfirm [.lib]Config.pm;* + Copy/Log/NoConfirm *$(E);,[.x2p]a2p$(E); $(ARCHDIR) + Delete/Log/NoConfirm Perl*$(E);*,[.x2p]a2p$(E);* + @ Write Sys$Output "Architecture-specific setup completed." + @ Write Sys$Output "Before building for another architecture, be sure to" + @ Write Sys$Output " 1. $(MMS)$(MMSQUALIFIERS) clean" + @ Write Sys$Output " 2. Delete Miniperl$(E)" + # CORE subset for MakeMaker, so we can build Perl without sources # Should move to VMS installperl when we get one $(ARCHCORE)EXTERN.h : EXTERN.h @@ -162,6 +162,8 @@ my_getenv(char *lnm) } /* end of my_getenv() */ /*}}}*/ +static FILE *safe_popen(char *, char *); + /*{{{ void prime_env_iter() */ void prime_env_iter(void) @@ -188,9 +190,9 @@ prime_env_iter(void) (void) hv_fetch(envhv,"USER",4,TRUE); /* Now, go get the logical names */ - if ((sholog = my_popen("$ Show Logical *","r")) == Nullfp) + if ((sholog = safe_popen("$ Show Logical *","r")) == Nullfp) _ckvmssts(vaxc$errno); - /* We use Perl's sv_gets to read from the pipe, since my_popen is + /* We use Perl's sv_gets to read from the pipe, since safe_popen is * tied to Perl's I/O layer, so it may not return a simple FILE * */ oldrs = rs; rs = newSVpv("\n",1); @@ -502,7 +504,8 @@ static int waitpid_asleep = 0; static unsigned long int pipe_exit_routine() { - unsigned long int retsts = SS$_NORMAL, abort = SS$_TIMEOUT, sts; + unsigned long int retsts = SS$_NORMAL, abort = SS$_TIMEOUT; + int sts; while (open_pipes != NULL) { if (!open_pipes->done) { /* Tap them gently on the shoulder . . .*/ @@ -511,7 +514,8 @@ pipe_exit_routine() } if (!open_pipes->done) /* We tried to be nice . . . */ _ckvmssts(sys$delprc(&open_pipes->pid,0)); - if (!((sts = my_pclose(open_pipes->fp))&1)) retsts = sts; + if ((sts = my_pclose(open_pipes->fp)) == -1) retsts = vaxc$errno; + else if (!(sts & 1)) retsts = sts; } return retsts; } @@ -531,9 +535,8 @@ popen_completion_ast(struct pipe_details *thispipe) } } -/*{{{ FILE *my_popen(char *cmd, char *mode)*/ -FILE * -my_popen(char *cmd, char *mode) +static FILE * +safe_popen(char *cmd, char *mode) { static int handler_set_up = FALSE; char mbxname[64]; @@ -591,7 +594,18 @@ my_popen(char *cmd, char *mode) forkprocess = info->pid; return info->fp; +} /* end of safe_popen */ + + +/*{{{ FILE *my_popen(char *cmd, char *mode)*/ +FILE * +my_popen(char *cmd, char *mode) +{ + TAINT_ENV(); + TAINT_PROPER("popen"); + return safe_popen(cmd,mode); } + /*}}}*/ /*{{{ I32 my_pclose(FILE *fp)*/ @@ -603,9 +617,11 @@ I32 my_pclose(FILE *fp) for (info = open_pipes; info != NULL; last = info, info = info->next) if (info->fp == fp) break; - if (info == NULL) - /* get here => no such pipe open */ - croak("No such pipe open"); + if (info == NULL) { /* no such pipe open */ + set_errno(ECHILD); /* quoth POSIX */ + set_vaxc_errno(SS$_NONEXPR); + return -1; + } /* If we were writing to a subprocess, insure that someone reading from * the mailbox gets an EOF. It looks like a simple fclose() doesn't @@ -2741,6 +2757,8 @@ vms_do_exec(char *cmd) { /* no vfork - act VMSish */ unsigned long int retsts; + TAINT_ENV(); + TAINT_PROPER("exec"); if ((retsts = setup_cmddsc(cmd,1)) & 1) retsts = lib$do_command(&VMScmd); @@ -2774,6 +2792,8 @@ do_spawn(char *cmd) { unsigned long int substs, hadcmd = 1; + TAINT_ENV(); + TAINT_PROPER("spawn"); if (!cmd || !*cmd) { hadcmd = 0; _ckvmssts(lib$spawn(0,0,0,0,0,0,&substs,0,0,0,0,0,0)); |