pidgin/pidgin

Fix leak that may occur when xmlnode_from_str fails
release-2.x.y
2021-09-13, Elliott Sales de Andrade
59a77978ca08
file isExecutable
Fix leak that may occur when xmlnode_from_str fails

The failure may occur any time in the middle of parsing, and `xpd->current` may
not actually be pointing to the root of the parsed tree. Thus we need to walk
back up before freeing the xmlnode.

Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=34988

Testing Done:
Ran the reproducer testcase on `fuzz_xml`

Reviewed at https://reviews.imfreedom.org/r/911/
#!/bin/sh
METHOD_NAME=$1
if test -z "$METHOD_NAME"
then
cat <<EOF
This program calls purple API functions using DBus and prints the return value.
If you are not interested in the return value, use purple-send-async.
Usage:
$0 method-name type1:parameter1 type2:parameter2 ...
This shell script just invokes dbus-send, see man dbus-send for how
to specify the parameters.
Examples:
$0 PurpleAccountsFindConnected string: string:prpl-jabber
$0 PurpleAccountsGetAll
$0 PurpleCoreQuit
Use dbus-viewer to get the list of supported functions and their parameters.
EOF
exit 1
fi
shift
dbus-send --dest=im.pidgin.purple.PurpleService --print-reply --type=method_call /im/pidgin/purple/PurpleObject im.pidgin.purple.PurpleInterface.$METHOD_NAME "$@"