summaryrefslogtreecommitdiff
path: root/file.c
diff options
context:
space:
mode:
Diffstat (limited to 'file.c')
-rwxr-xr-xfile.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/file.c b/file.c
index c4fac49d1..d48aaeb03 100755
--- a/file.c
+++ b/file.c
@@ -870,7 +870,8 @@ struct ast_filestream *ast_readfile(const char *filename, const char *type, cons
struct ast_filestream *ast_writefile(const char *filename, const char *type, const char *comment, int flags, int check, mode_t mode)
{
int fd, myflags = 0;
- FILE *bfile;
+ /* compiler claims this variable can be used before initialization... */
+ FILE *bfile = NULL;
struct ast_format *f;
struct ast_filestream *fs = NULL;
char *fn, *orig_fn = NULL;
@@ -908,7 +909,7 @@ struct ast_filestream *ast_writefile(const char *filename, const char *type, con
}
}
- if (option_cache_record_files && fd >= 0) {
+ if (option_cache_record_files && (fd > -1)) {
char *c;
fclose(bfile);
@@ -923,8 +924,9 @@ struct ast_filestream *ast_writefile(const char *filename, const char *type, con
size = strlen(fn) + strlen(record_cache_dir) + 2;
buf = alloca(size);
- memset(buf, 0, size);
- snprintf(buf, size, "%s/%s", record_cache_dir, fn);
+ strcpy(buf, record_cache_dir);
+ strcat(buf, "/");
+ strcat(buf, fn);
free(fn);
fn = buf;
fd = open(fn, flags | myflags, mode);
@@ -938,9 +940,8 @@ struct ast_filestream *ast_writefile(const char *filename, const char *type, con
}
}
}
- if (fd >= 0) {
+ if (fd > -1) {
errno = 0;
-
if ((fs = f->rewrite(bfile, comment))) {
fs->trans = NULL;
fs->fmt = f;