Might as well go crazy here too and make the autoservice list read/write.
[asterisk/asterisk.git] / cdr / cdr_custom.c
index e89f022..9955317 100644 (file)
@@ -77,9 +77,9 @@ static int load_config(int reload)
                while(var) {
                        ast_mutex_lock(&lock);
                        if (!ast_strlen_zero(var->name) && !ast_strlen_zero(var->value)) {
-                               if (strlen(var->value) > (sizeof(format) - 2))
+                               if (strlen(var->value) > (sizeof(format) - 1))
                                        ast_log(LOG_WARNING, "Format string too long, will be truncated, at line %d\n", var->lineno);
-                               strncpy(format, var->value, sizeof(format) - 2);
+                               ast_copy_string(format, var->value, sizeof(format) - 1);
                                strcat(format,"\n");
                                snprintf(master, sizeof(master),"%s/%s/%s", ast_config_AST_LOG_DIR, name, var->name);
                                ast_mutex_unlock(&lock);
@@ -153,8 +153,9 @@ static int load_module(void)
                        ast_log(LOG_ERROR, "Unable to register custom CDR handling\n");
                if (mf)
                        fclose(mf);
-       }
-       return res;
+               return res;
+       } else 
+               return AST_MODULE_LOAD_DECLINE;
 }
 
 static int reload(void)