FILE *ask_and_open(const char *filename, const char *what) {
FILE *r;
- char *directory;
+ char directory[PATH_MAX];
char line[PATH_MAX];
+ char abspath[PATH_MAX];
const char *fn;
/* Check stdin and stdout */
if(fn[0] != '/') {
#endif
/* The directory is a relative path or a filename. */
- char *p;
-
- directory = get_current_dir_name();
- xasprintf(&p, "%s/%s", directory, fn);
- free(directory);
- fn = p;
+ getcwd(directory, sizeof directory);
+ snprintf(abspath, sizeof abspath, "%s/%s", directory, fn);
+ fn = abspath;
}
umask(0077); /* Disallow everything for group and other */