UpdateConfig manager action is issued and the
file specified in DstFileName does not yet exist,
an error is not returned.
(closes issue #13341)
Reported by: vadim
Patches:
13341.patch uploaded by putnopvut (license 60)
(with small modification from seanbright)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@139769
65c4cc65-6c06-0410-ace0-
fbb531ad65f3
struct ast_comment *cmt;
struct stat s;
int blanklines = 0;
+ int stat_result = 0;
if (configfile[0] == '/') {
snprintf(fntmp, sizeof(fntmp), "%s.XXXXXX", configfile);
close(fd);
return -1;
}
- stat(fn, &s);
- fchmod(fd, s.st_mode);
+ if (!(stat_result = stat(fn, &s))) {
+ fchmod(fd, s.st_mode);
+ }
fclose(f);
- if (unlink(fn) || link(fntmp, fn)) {
+ if ((!stat_result && unlink(fn)) || link(fntmp, fn)) {
if (option_debug)
ast_log(LOG_DEBUG, "Unable to open for writing: %s (%s)\n", fn, strerror(errno));
if (option_verbose > 1)