Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!ames!elroy!devvax!lroot
From: lroot@devvax.JPL.NASA.GOV (The Superuser)
Newsgroups: comp.sources.bugs
Subject: perl 2.0 patch #8
Summary: This is an official patch for perl 2.0.  Please apply it.
Message-ID: <2452@devvax.JPL.NASA.GOV>
Date: 14 Jul 88 04:37:56 GMT
Organization: Jet Propulsion Laboratory, Pasadena, CA
Lines: 100

System: perl version 2.0
Patch #: 8
Priority: HIGH on Suns
Subject: globs fail on Suns
From: peterli@mis.ucsf.EDU (Peter Li)

Description:
	The op.stat test has a NULL dereference because patch2 was incomplete.
	It shows up when trying to do file globs.  Ordinarily I test on Suns
	but this one snuck by somehow.  Sorry.  I promise I won't send any
	more patches.  Well, not for the next 8 hours, anyway...

Fix:	From rn, say "| patch -p -N -d DIR", where DIR is your perl source
	directory.  Outside of rn, say "cd DIR; patch -p -N  #define PATCHLEVEL 8

Index: eval.c
Prereq: 2.0.1.2
*** eval.c.old	Wed Jul 13 21:21:49 1988
--- eval.c	Wed Jul 13 21:21:51 1988
***************
*** 1,6 ****
! /* $Header: eval.c,v 2.0.1.2 88/07/12 17:16:15 root Exp $
   *
   * $Log:	eval.c,v $
   * Revision 2.0.1.2  88/07/12  17:16:15  root
   * patch6: removed uselss ++
   * 
--- 1,9 ----
! /* $Header: eval.c,v 2.0.1.3 88/07/13 21:21:35 root Exp $
   *
   * $Log:	eval.c,v $
+  * Revision 2.0.1.3  88/07/13  21:21:35  root
+  * patch8: changed occurences of vestigial tmps to tmpstr
+  * 
   * Revision 2.0.1.2  88/07/12  17:16:15  root
   * patch6: removed uselss ++
   * 
***************
*** 274,283 ****
  		    else if (argtype == A_GLOB) {
  			(void) interp(str,str_get(last_in_stab->stab_val));
  			tmpstr = str_new(0);
! 			if (*tmps == '!')
  			    str_sset(tmpstr,str),str_cat(tmpstr,"|");
  			else {
! 			    if (*tmps == ';')
  				str_set(tmpstr,str->str_ptr+1);
  			    else
  				str_set(tmpstr, "echo "), str_scat(tmpstr,str);
--- 277,286 ----
  		    else if (argtype == A_GLOB) {
  			(void) interp(str,str_get(last_in_stab->stab_val));
  			tmpstr = str_new(0);
! 			if (*str->str_ptr == '!')
  			    str_sset(tmpstr,str),str_cat(tmpstr,"|");
  			else {
! 			    if (*str->str_ptr == ';')
  				str_set(tmpstr,str->str_ptr+1);
  			    else
  				str_set(tmpstr, "echo "), str_scat(tmpstr,str);