purple: add URI validity check to Add Buddy callback
commit9b231ed6ed7835f76950a8c9264b9c0a2dd525cf
authorStefan Becker <chemobejk@gmail.com>
Thu, 15 Mar 2012 20:32:44 +0000 (15 22:32 +0200)
committerStefan Becker <chemobejk@gmail.com>
Fri, 16 Mar 2012 06:00:07 +0000 (16 08:00 +0200)
tree21dc9497ab11e185ed8f4774fe92eb7d719afd2d
parentf242aa7fd133537bef4e0506cb31cea3ac1ca43d
purple: add URI validity check to Add Buddy callback

buddy->name is provided by the user and therefore can contain characters
invalid for a sip: URI, e.g. when he mistakenly enters the new users
full name instead of the email address into the "Buddy's username"
field. An invalid URI can lead to SIP protocol errors causing the
connection to be dropped.

Added a new core function sip_uri_if_valid() that behaves like sip_uri()
if the provided string contains only valid URI characters, otherwise it
returns NULL.

In the case of an invalid buddy name we also must remove the new buddy
entry from the list to prevent it from being stored in the configuration
and thus causing protocol errors at the next startup.
src/api/sipe-core.h
src/core/sipe-utils.c
src/core/sipe-utils.h
src/purple/purple-buddy.c