Search
j0ke.net Open Build Service
>
Projects
>
server:monitoring
:
netflow
>
byacc
> byacc-1.9-security.patch
Sign Up
|
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File byacc-1.9-security.patch of Package byacc
--- yacc/main.c.security Mon Jan 10 15:26:24 2000 +++ yacc/main.c Fri Jan 5 10:21:29 2001 @@ -109,6 +109,11 @@ short **derives; char *nullable; +#ifdef linux +# define mktemp safe_mktemp +extern void safe_mktemp(char *tmpl); +#endif + static void create_file_names __P((void)); static void getargs __P((int, char **)); static void onintr __P((int)); @@ -121,9 +126,18 @@ done(k) int k; { - if (action_file) { fclose(action_file); unlink(action_file_name); } - if (text_file) { fclose(text_file); unlink(text_file_name); } - if (union_file) { fclose(union_file); unlink(union_file_name); } + if (action_file) + fclose(action_file); + if (action_file_name[0]) + unlink(action_file_name); + if (text_file) + fclose(text_file); + if (text_file_name[0]) + unlink(text_file_name); + if (union_file) + fclose(union_file); + if (union_file_name[0]) + unlink(union_file_name); exit(k); } @@ -482,6 +496,19 @@ code_file = output_file; } +#ifdef linux +void +safe_mktemp(char *fname) +{ + int fd; + + if ((fd = mkstemp(fname)) < 0) { + perror("unable to create temp file"); + exit(1); + } + close(fd); +} +#endif int main(argc, argv)