|
Lines 122-132
Link Here
|
| 122 |
int dyn_count = 0; |
122 |
int dyn_count = 0; |
| 123 |
int error_count = 0; |
123 |
int error_count = 0; |
| 124 |
char * progname = "C"; |
124 |
char * progname = "C"; |
| 125 |
#ifdef MSDOS |
|
|
| 126 |
char * tmpdir = ""; |
125 |
char * tmpdir = ""; |
| 127 |
#else |
|
|
| 128 |
char * tmpdir = "/tmp/"; |
| 129 |
#endif |
| 130 |
|
126 |
|
| 131 |
int main P((int argc, char **argv)); |
127 |
int main P((int argc, char **argv)); |
| 132 |
void getargs P((int argc, char **argv)); |
128 |
void getargs P((int argc, char **argv)); |
|
Lines 195-200
Link Here
|
| 195 |
if ((temp = getenv("BCC_PREFIX")) != 0 ) |
191 |
if ((temp = getenv("BCC_PREFIX")) != 0 ) |
| 196 |
localprefix = copystr(temp); |
192 |
localprefix = copystr(temp); |
| 197 |
|
193 |
|
|
|
194 |
#ifndef MSDOS |
| 195 |
/* XXX: this brings bcc behaviour in sync with the manual page which |
| 196 |
states that bcc uses TMPDIR for the temporary directory name. |
| 197 |
However, temporary file handling in this package is totally |
| 198 |
insecure and I see no easy way how to fix it. :( |
| 199 |
-- (GM) |
| 200 |
*/ |
| 201 |
tmpdir = __secure_getenv("TMPDIR"); |
| 202 |
if (!tmpdir || !*tmpdir) |
| 203 |
tmpdir = "/tmp"; |
| 204 |
#endif |
| 205 |
|
| 198 |
getargs(argc, argv); |
206 |
getargs(argc, argv); |
| 199 |
validate_link_opts(); |
207 |
validate_link_opts(); |
| 200 |
|
208 |
|
|
Lines 727-735
Link Here
|
| 727 |
{ |
735 |
{ |
| 728 |
char buf[16]; |
736 |
char buf[16]; |
| 729 |
#ifdef MSDOS |
737 |
#ifdef MSDOS |
| 730 |
sprintf(buf, "$$%05d$", dyn_count++); |
738 |
sprintf(buf, "/$$%05d$", dyn_count++); |
| 731 |
#else |
739 |
#else |
| 732 |
sprintf(buf, "$$%04d%05d", dyn_count++, getpid()); |
740 |
sprintf(buf, "/$$%04d%05d", dyn_count++, getpid()); |
| 733 |
#endif |
741 |
#endif |
| 734 |
file->file = catstr(tmpdir, buf); |
742 |
file->file = catstr(tmpdir, buf); |
| 735 |
} |
743 |
} |
|
Lines 750-758
Link Here
|
| 750 |
char buf[16]; |
758 |
char buf[16]; |
| 751 |
char * p; |
759 |
char * p; |
| 752 |
#ifdef MSDOS |
760 |
#ifdef MSDOS |
| 753 |
sprintf(buf, "$$%05d$", i); |
761 |
sprintf(buf, "/$$%05d$", i); |
| 754 |
#else |
762 |
#else |
| 755 |
sprintf(buf, "$$%04d%05d", i, getpid()); |
763 |
sprintf(buf, "/$$%04d%05d", i, getpid()); |
| 756 |
#endif |
764 |
#endif |
| 757 |
p = catstr(tmpdir, buf); |
765 |
p = catstr(tmpdir, buf); |
| 758 |
if (opt_v>1) |
766 |
if (opt_v>1) |