diff options
Diffstat (limited to 'glafp-utils/perl-4.035-fixes')
-rw-r--r-- | glafp-utils/perl-4.035-fixes | 180 |
1 files changed, 180 insertions, 0 deletions
diff --git a/glafp-utils/perl-4.035-fixes b/glafp-utils/perl-4.035-fixes new file mode 100644 index 0000000000..e456aa49e8 --- /dev/null +++ b/glafp-utils/perl-4.035-fixes @@ -0,0 +1,180 @@ +From mjeffery@reed.edu Sun Nov 29 14:07:23 1992 +From: mjeffery@reed.edu (Mark Jefferys) +Newsgroups: comp.lang.perl +Subject: Re: Recursion error in perl 4.035 ? +Date: 28 Nov 92 23:31:14 GMT +Organization: Reed College, Portland, OR + +In article <1f7uvvINN9tp@roundup.crhc.uiuc.edu> parkes@uiuc.edu writes: + +% In cons.c, change the code at or around 1423 from +% +% if (willsave) +% (void)apush(tosave,arg->arg_ptr.arg_str); +% +% to +% +% if (willsave && arg->arg_ptr.arg_str ) +% (void)apush(tosave,arg->arg_ptr.arg_str); + +This is half of my patch to which Larry gave a "Looks OK to me." +It's been a few months, do I'll post it again. + + +Mark + + +Index: cons.c +*** Orig/cons.c Thu Jun 11 22:42:01 1992 +--- cons.c Sun Jun 28 18:31:20 1992 +*************** +*** 1353,1359 **** + + /* in any event, save the iterator */ + +! (void)apush(tosave,cmd->c_short); + } + shouldsave |= tmpsave; + } +--- 1353,1360 ---- + + /* in any event, save the iterator */ + +! if (cmd->c_short) /* Better safe than sorry */ +! (void)apush(tosave,cmd->c_short); + } + shouldsave |= tmpsave; + } +*************** +*** 1420,1426 **** + shouldsave = TRUE; + break; + } +! if (willsave) + (void)apush(tosave,arg->arg_ptr.arg_str); + return shouldsave; + } +--- 1421,1427 ---- + shouldsave = TRUE; + break; + } +! if (willsave && arg->arg_ptr.arg_str) + (void)apush(tosave,arg->arg_ptr.arg_str); + return shouldsave; + } +-- +Mark Jefferys Internet: mjeffery@reed.edu + +From ezk@cs.columbia.edu Fri Dec 4 19:44:03 1992 +From: ezk@cs.columbia.edu (Erez "HWank1" Zadok) +Newsgroups: comp.lang.perl +Subject: REPOST: FIXES to perl/makewhatis (core dump on OW3 man pages) +Date: 3 Dec 92 12:42:05 GMT + +[This is a repost... -Erez] + +I've found three small bugs in the the latest version of perl (4.035), which +I fixed. + +The bugs only appeared when I got Tom Christiansen's man package, and ran +the makewhatis script. Furthermore, it only occurred for one particular set +of manual pages -- SunOS's OpenWindows 3. + +Since it seemed related to DBM, I tried to recompile perl with several +possible combinations of Sun's /bin/cc, gcc (2.2.2), ndbm, gdbm, +- -DDEBUGGING, -traditional (for gcc), Perl's malloc, Sun's malloc, etc. to no +avail. Perl was still dumping core with a segmentation fault. "make test" +was ok. I was running on various Sun 4 machines, running SunOS 4.1.2. + +After debugging I found out that perl was trying to dereference pointers +that were not initialized. + +I fixed this by adding initialization to three declarations in perl.h. The +ones to rsfp and statstab were needed for non-compressed man pages. When I +started using compressed man pages I discovered I had to initialize fdpid as +well. Now everything works fine. Here is the diff file: + +*** array.h.orig Tue Nov 24 02:16:30 1992 +--- array.h Mon Nov 23 14:31:16 1992 +*************** +*** 17,22 **** +--- 17,33 ---- + * + */ + ++ #ifdef NULL ++ #undef NULL ++ #endif ++ #ifndef I286 ++ # define NULL 0 ++ #else ++ # define NULL 0L ++ #endif ++ #define Null(type) ((type)NULL) ++ #define Nullarray Null(ARRAY*) ++ + struct atbl { + STR **ary_array; + STR **ary_alloc; +*** perl.h.orig Tue Nov 24 02:16:10 1992 +--- perl.h Mon Nov 23 14:30:51 1992 +*************** +*** 868,874 **** + + EXT char *hexdigit INIT("0123456789abcdef0123456789ABCDEFx"); + EXT char *origfilename; +! EXT FILE * VOLATILE rsfp; + EXT char buf[1024]; + EXT char *bufptr; + EXT char *oldbufptr; +--- 868,874 ---- + + EXT char *hexdigit INIT("0123456789abcdef0123456789ABCDEFx"); + EXT char *origfilename; +! EXT FILE * VOLATILE rsfp INIT(Nullfp); + EXT char buf[1024]; + EXT char *bufptr; + EXT char *oldbufptr; +*************** +*** 952,958 **** + EXT struct stat statbuf; + EXT struct stat statcache; + EXT STAB *statstab INIT(Nullstab); +! EXT STR *statname; + #ifndef MSDOS + EXT struct tms timesbuf; + #endif +--- 952,958 ---- + EXT struct stat statbuf; + EXT struct stat statcache; + EXT STAB *statstab INIT(Nullstab); +! EXT STR *statname INIT(Nullstr); + #ifndef MSDOS + EXT struct tms timesbuf; + #endif +*************** +*** 1013,1019 **** + EXT ARRAY *lineary; /* lines of script for debugger */ + EXT ARRAY *dbargs; /* args to call listed by caller function */ + +! EXT ARRAY *fdpid; /* keep fd-to-pid mappings for mypopen */ + EXT HASH *pidstatus; /* keep pid-to-status mappings for waitpid */ + + EXT int *di; /* for tmp use in debuggers */ +--- 1013,1019 ---- + EXT ARRAY *lineary; /* lines of script for debugger */ + EXT ARRAY *dbargs; /* args to call listed by caller function */ + +! EXT ARRAY *fdpid INIT(Nullarray); /* keep fd-to-pid mappings for mypopen */ + EXT HASH *pidstatus; /* keep pid-to-status mappings for waitpid */ + + EXT int *di; /* for tmp use in debuggers */ + + +Erez Zadok. +Central Research Facilities. +Columbia University Department of Computer Science. +- --- +"A wank's morning starts one jiffy | Arpa: ezk@cs.columbia.edu + after midnight." | Usenet: ...!rutgers!columbia!cs!ezk + -HebrewWank #1 (US meaning, not UK!) | Bitnet: erzus@cuvmb.BITNET |