view libpurple/purple-send @ 16569:99bf55ec6ca4

Fix an invalid read that occurs because we were accessing IM data when the conversation was a chat. Here's the relevant valgrind output. ==18344== Invalid read of size 4 ==18344== at 0x8089DA1: update_typing_icon (gtkconv.c:3138) ==18344== by 0x8090742: pidgin_conv_update_fields (gtkconv.c:6081) ... ==18344== Address 0x107EADD0 is 12 bytes after a block of size 12 alloc'd ==18344== at 0x40056D5: calloc (vg_replace_malloc.c:279) ==18344== by 0x4D48EC4D: g_malloc0 (in /usr/lib/libglib-2.0.so.0.1200.4) ==18344== by 0x809149B: private_gtkconv_new (gtkconv.c:4608) ==18344== by 0x4056637: purple_conversation_new (conversation.c:324) ==18344== by 0x40785EB: serv_got_joined_chat (server.c:699) ==18344== by 0x493C813: irc_msg_join (msgs.c:722) ...
author Richard Laager <rlaager@wiktel.com>
date Sat, 28 Apr 2007 05:37:56 +0000
parents 598b1b15b199
children 942bf314fc8a
line wrap: on
line source

#!/bin/bash

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 "$@"

echo