cdr: Fix 'core show channel' CDR variable truncation.
authorsnuffy <snuffy22@gmail.com>
Fri, 15 May 2015 06:54:26 +0000 (16:54 +1000)
committerJoshua Colp <jcolp@digium.com>
Fri, 15 May 2015 14:59:29 +0000 (09:59 -0500)
When the new Bridging API was implemented, the workspace variable
changed to a malloc'd string, causing sizeof() to always be 8 (char).

Revert back to stored on stack string for workspace.

ASTERISK-25090 #close

Change-Id: I51e610ae87371df771ce7693a955510efb90f8f7

main/cdr.c

index 9b32f9d..c6f49f1 100644 (file)
@@ -3096,13 +3096,9 @@ int ast_cdr_serialize_variables(const char *channel_name, struct ast_str **buf,
        struct cdr_object *it_cdr;
        struct ast_var_t *variable;
        const char *var;
-       RAII_VAR(char *, workspace, ast_malloc(256), ast_free);
+       char workspace[256];
        int total = 0, x = 0, i;
 
-       if (!workspace) {
-               return 0;
-       }
-
        if (!cdr) {
                RAII_VAR(struct module_config *, mod_cfg,
                         ao2_global_obj_ref(module_configs), ao2_cleanup);