[asterisk-bugs] [JIRA] (ASTERISK-29614) app_agent_pool: XML Doc: unterminated entity reference
Sean Bright (JIRA)
noreply at issues.asterisk.org
Thu Aug 26 08:42:35 CDT 2021
[ https://issues.asterisk.org/jira/browse/ASTERISK-29614?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=256080#comment-256080 ]
Sean Bright commented on ASTERISK-29614:
----------------------------------------
Those are a lot of questions and I am by no means an expert on ACO. I just happened to figure out what was going on with this particular bug. Anyway:
# Yes, we can.
# Which XML API call are you talking about specifically?
# I assume the intent was that all of the various match types were exercised during the test, but I do not know for certain.
# That could be done. My change does not re-introduce the regex but just generates a string that is displayed by 'config show help' - that part was neglected during the change to include the blacklist array. It just looks like a regex so that the output is consistent with other categories.
# I assume because their {{type}} is set to {{ACO_IGNORE}} but I would have to test that to confirm.
# You would have to ask the libxml2 authors, I am not that familiar with the inner workings of that library
> app_agent_pool: XML Doc: unterminated entity reference
> ------------------------------------------------------
>
> Key: ASTERISK-29614
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-29614
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Components: Applications/app_agent_pool, Applications/app_skel, Documentation
> Affects Versions: 13.38.3, 16.20.0, 18.6.0, 19.0.0
> Environment: Ubuntu 18.04 LTS
> ./configure --enable-xmldoc, which is the default
> make all or make full, does not matter
> Reporter: Alexander Traud
> Assignee: Unassigned
> Severity: Major
> Labels: patch
> Attachments: 0001-config_options-Avoid-memory-corruption.patch
>
>
> This issue seems not to be of constant occurrence. Furthermore, I was not able to find any reports about this except several failed builds in Gerrit. Perhaps those are related but I did not investigated those further, yet.
> Currently, I am able to replicate it quite constant and was able to investigate a bit with GDB. However, I am reporting early in my analysis, perhaps somebody sees the culprit faster.
> *My symptom*:
> {code} Loading app_agent_pool.so.
> == Manager registered action Agents
> == Manager registered action AgentLogoff
> == Registered custom function 'AGENT'
> == Registered application 'AgentLogin'
> == Registered application 'AgentRequest'
> error : unterminated entity reference ���
> == app_agent_pool.so => (Call center agent pool applications){code}*My call stack*:
> apps/app_agent_pool.c
> ⤷ load_module
> ⤷ load_config
> ⤷ aco_info_init
> ⤷ type = agent_type (the second type from {{app_agent_pool}}, the one after the {{general_type}})
> ⤷ xmldoc_update_config_type in file main/xml.c
> ⤷ ast_xml_set_text
> ⤷ xmlNodeSetContent
> That error is not printed, when I remove _all_ categories except the terminating NULL, in the file {{apps/app_agent_pool.c}}, in the string array {{agent_type_blacklist}}. That error is not printed, when I comment/disable at least four of the eight {{aco_option_register}} in {{load_config}}.
> This looks like a memory corruption, because even when that error is not printed, on the command-line interface (CLI), I am not able to issue {{xmldoc dump <file>}} when the module {{app_agent_pool}} is loaded. I get errors like {{output error : string is not in UTF-8}} or {{xmlEscapeEntities : char out of range}}.
> *Workarounds*:
> a) {{./configure --disable-xmldoc}} or
> b) disable the module {{app_agent_pool}} via {{make menuselect}} or
> c) noload the module {{app_agent_pool}} via the configuration file {{modules.conf}} or
> d) change the string array {{agent_type_blacklist}} to contain just the terminating {{NULL}} value
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list