view finch/gntdebug.h @ 29608:8d4bed3021dc

Fix some problems in the oscar code that deals with channel 2 icbms. Specifically related to rtf messages and sent as ICQ server relay. Introduced in 1431506710bed6b8f0c837b670ee314b1692990e in the im.pidgin.cpw.rekkanoryo.icqxstatus branch * memleak fix: We weren't freeing rtfmsg * remote crash fix: We always check args->info.rtfmsg.rtfmsg and try to convert it to UTF-8. However, args->info.rtfmsg is a part of a union and is only set/valid when args->type is OSCAR_CAPABILITY_ICQSERVERRELAY So channel 2 icbms of other types (like chat invites, for example) tend to cause a crash. * possibly printing invalid utf-8: if we could not convert rtfmsg to utf8, and the original rtfmsg failed to validate as utf8, then we tried to write the message to the im window anyway. But that's clearly not a good idea. Really glad I happened to find that remote crash before we released--dealing with security problems is such a pain.
author Mark Doliner <mark@kingant.net>
date Thu, 18 Mar 2010 07:55:17 +0000
parents 6bf32c9e15a7
children
line wrap: on
line source

/**
 * @file gntdebug.h GNT Debug API
 * @ingroup finch
 */

/* finch
 *
 * Finch is the legal property of its developers, whose names are too numerous
 * to list here.  Please refer to the COPYRIGHT file distributed with this
 * source distribution.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
 */
#ifndef _GNT_DEBUG_H
#define _GNT_DEBUG_H

#include "debug.h"

/**********************************************************************
 * @name GNT Debug API
 **********************************************************************/
/*@{*/

/**
 * Get the ui-functions.
 *
 * @return The PurpleDebugUiOps structure populated with the appropriate functions.
 */
PurpleDebugUiOps *finch_debug_get_ui_ops(void);

/**
 * Perform necessary initializations.
 */
void finch_debug_init(void);

/**
 * Perform necessary uninitializations.
 */
void finch_debug_uninit(void);

/**
 * Show the debug window.
 */
void finch_debug_window_show(void);

/*@}*/

#endif