Commit 4f19a9cb authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Off by one fix from stable branch.

parent 0023adb4
Loading
Loading
Loading
Loading
+11 −11
Original line number Diff line number Diff line
@@ -1277,7 +1277,6 @@ int SSL_set_cipher_list(SSL *s,const char *str)
char *SSL_get_shared_ciphers(const SSL *s,char *buf,int len)
	{
	char *p;
	const char *cp;
	STACK_OF(SSL_CIPHER) *sk;
	SSL_CIPHER *c;
	int i;
@@ -1290,20 +1289,21 @@ char *SSL_get_shared_ciphers(const SSL *s,char *buf,int len)
	sk=s->session->ciphers;
	for (i=0; i<sk_SSL_CIPHER_num(sk); i++)
		{
		/* Decrement for either the ':' or a '\0' */
		len--;
		int n;

		c=sk_SSL_CIPHER_value(sk,i);
		for (cp=c->name; *cp; )
			{
			if (len-- <= 0)
		n=strlen(c->name);
		if (n+1 > len)
			{
			if (p != buf)
				--p;
			*p='\0';
				return(buf);
				}
			else
				*(p++)= *(cp++);
			return buf;
			}
		strcpy(p,c->name);
		p+=n;
		*(p++)=':';
		len-=n+1;
		}
	p[-1]='\0';
	return(buf);