Mercurial > pidgin.yaz
view libpurple/protocols/zephyr/ZGetSubs.c @ 32053:0b73619ad581
media: Fix a NULL pointer deref crash, and add diagnostic logging.
I'm not entirely sure that just short-circuiting error handling in this
case is correct (in fact I suspect it's not), but it's certainly better
than a crash, and now there's detail on the actual error.
Closes #14033
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Thu, 12 May 2011 01:21:50 +0000 |
parents | a8cc50c2279f |
children |
line wrap: on
line source
/* This file is part of the Project Athena Zephyr Notification System. * It contains source for the ZGetSubscriptions function. * * Created by: Robert French * * Copyright (c) 1987 by the Massachusetts Institute of Technology. * For copying and distribution information, see the file * "mit-copyright.h". */ #include "internal.h" #define min(a,b) ((a)<(b)?(a):(b)) /* Prototype for -Wmissing-prototypes */ Code_t ZGetSubscriptions(ZSubscription_t *subscription, int *numsubs); Code_t ZGetSubscriptions(ZSubscription_t *subscription, int *numsubs) { int i; if (!__subscriptions_list) return (ZERR_NOSUBSCRIPTIONS); if (__subscriptions_next == __subscriptions_num) return (ZERR_NOMORESUBSCRIPTIONS); for (i=0;i<min(*numsubs, __subscriptions_num-__subscriptions_next);i++) subscription[i] = __subscriptions_list[i+__subscriptions_next]; if (__subscriptions_num-__subscriptions_next < *numsubs) *numsubs = __subscriptions_num-__subscriptions_next; __subscriptions_next += *numsubs; return (ZERR_NONE); }