Move to asprintf (bug #252)
authorMark Spencer <markster@digium.com>
Sat, 27 Sep 2003 02:22:18 +0000 (02:22 +0000)
committerMark Spencer <markster@digium.com>
Sat, 27 Sep 2003 02:22:18 +0000 (02:22 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1562 65c4cc65-6c06-0410-ace0-fbb531ad65f3

pbx.c

diff --git a/pbx.c b/pbx.c
index aa833c7..ba5f8c0 100755 (executable)
--- a/pbx.c
+++ b/pbx.c
@@ -2336,8 +2336,8 @@ static char *complete_show_application(char *line, char *word,
 static int handle_show_application(int fd, int argc, char *argv[])
 {
        struct ast_app *a;
-       char buf[2048];
-       int app, no_registered_app = 1;
+       int n, app, no_registered_app = 1;
+       char *buf;
 
        if (argc < 3) return RESULT_SHOWUSAGE;
 
@@ -2357,14 +2357,17 @@ static int handle_show_application(int fd, int argc, char *argv[])
                                no_registered_app = 0;
 
                                /* ... one of our applications, show info ...*/
-                               snprintf(buf, sizeof(buf),
+                               n = asprintf(&buf,
                                        "\n  -= Info about application '%s' =- \n\n"
                                        "[Synopsis]:\n  %s\n\n"
                                        "[Description]:\n%s\n",
                                        a->name,
                                        a->synopsis ? a->synopsis : "Not available",
                                        a->description ? a-> description : "Not available");
-                               ast_cli(fd, buf);
+                               if (n >= 0) {
+                                       ast_cli(fd, buf);
+                                       free(buf);
+                               }
                        }
                }
                a = a->next;