Fix call files when astspooldir is relative.
authorRichard Mudgett <rmudgett@digium.com>
Wed, 14 Nov 2012 19:55:39 +0000 (19:55 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Wed, 14 Nov 2012 19:55:39 +0000 (19:55 +0000)
Future dated call files are ignored when astspooldir is relative to the
current directory.  The queue_file() assumed that the qdir needed to be
prepended if the given filename did not start with a '/'.  If astspooldir
is relative it is not going to start from the root directory obviously so
it will not start with a '/'.  The filename used in queue_file()
ultimately results in qdir prepended multiple times.

* Made queue_file() not prepend qdir if the filename contains a '/'.

(closes issue ASTERISK-20593)
Reported by: James Le Cuirot
Patches:
      0004-Fix-future-call-files-from-relative-directories.patch (license #6439) patch uploaded by James Le Cuirot
........

Merged revisions 376232 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 376233 from http://svn.asterisk.org/svn/asterisk/branches/10
........

Merged revisions 376234 from http://svn.asterisk.org/svn/asterisk/branches/11

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@376235 65c4cc65-6c06-0410-ace0-fbb531ad65f3

pbx/pbx_spool.c

index f1b7445..6a47bef 100644 (file)
@@ -509,7 +509,7 @@ static void queue_file(const char *filename, time_t when)
        int res;
        time_t now = time(NULL);
 
-       if (filename[0] != '/') {
+       if (!strchr(filename, '/')) {
                char *fn = ast_alloca(strlen(qdir) + strlen(filename) + 2);
                sprintf(fn, "%s/%s", qdir, filename); /* SAFE */
                filename = fn;