This patch tweaks the jid_get_* functions, which copy various 
fragments of an jabber id into a buffer supplied by the caller.

If these functions don't find the fragments they're looking for, they
now return an empty string in the buffer.  Earlier they would leave
the buffer unchanged, leaving it to the calling code to initialize
the buffer.

Scott McKellar
http://home.swbell.net/mck9/ct/

Developer's Certificate of Origin 1.1 By making a contribution to
this project, I certify that:

(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license indicated
in the file; or

(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source license
and I have the right under that license to submit that work with
modifications, whether created in whole or in part by me, under the
same open source license (unless I am permitted to submit under a
different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person
who certified (a), (b) or (c) and I have not modified it; and

(d) In the case of each of (a), (b), or (c), I understand and agree
that this project and the contribution are public and that a record
of the contribution (including all personal information I submit
with it, including my sign-off) is maintained indefinitely and may
be redistributed consistent with this project or the open source
license indicated in the file.
*** ./trunk/src/libopensrf/transport_message.c	2008-04-12 10:15:56.000000000 -0500
--- ./trunk-mod/src/libopensrf/transport_message.c	2008-04-13 10:12:26.000000000 -0500
***************
*** 331,336 ****
--- 331,338 ----
  
  	if( jid == NULL || buf == NULL || size <= 0 ) { return; }
  
+ 	buf[ 0 ] = '\0';
+ 	
  	/* find the @ and return whatever is in front of it */
  	int len = strlen( jid );
  	int i;
***************
*** 360,365 ****
--- 362,369 ----
  		memcpy( buf, start, len );
  		buf[ len ] = '\0';
  	}
+ 	else
+ 		buf[ 0 ] = '\0';
  }
  
  void jid_get_domain( const char* jid, char buf[], int size ) {
***************
*** 384,389 ****
--- 388,395 ----
  		memcpy( buf, jid + index1, dlen );
  		buf[dlen] = '\0'; // memcpy doesn't provide the nul
  	}
+ 	else
+ 		buf[ 0 ] = '\0';
  }
  
  void set_msg_error( transport_message* msg, const char* type, int err_code ) {

Reply via email to