libpurple/ciphers/des3cipher.c

branch
soc.2013.gobjectification
changeset 34889
4ea2da14cd0e
parent 34644
368d270dc0c3
child 34965
9abd15d6da07
--- a/libpurple/ciphers/des3cipher.c	Thu Aug 22 00:32:28 2013 +0530
+++ b/libpurple/ciphers/des3cipher.c	Thu Aug 22 01:35:32 2013 +0530
@@ -108,11 +108,11 @@
 purple_des3_cipher_ecb_encrypt(PurpleDES3Cipher *des3_cipher, const guchar input[],
 							size_t in_len, guchar output[], size_t out_size)
 {
-	int offset = 0;
+	gsize offset = 0;
 	int i = 0;
-	int tmp;
+	gsize tmp;
 	guint8 buf[8] = {0,0,0,0,0,0,0,0};
-	ssize_t out_len;
+	gsize out_len;
 	PurpleDES3CipherPrivate *priv = PURPLE_DES3_CIPHER_GET_PRIVATE(des3_cipher);
 
 	g_return_val_if_fail(out_size >= in_len, -1);
@@ -130,6 +130,7 @@
 
 	out_len = in_len;
 	if (offset < in_len) {
+		g_return_val_if_fail(in_len >= offset, -1);
 		out_len += in_len - offset;
 		g_return_val_if_fail(out_size >= out_len, -1);
 		tmp = offset;
@@ -154,12 +155,13 @@
 purple_des3_cipher_cbc_encrypt(PurpleDES3Cipher *des3_cipher, const guchar input[],
 							size_t in_len, guchar output[], size_t out_size)
 {
-	int offset = 0;
+	gsize offset = 0;
 	int i = 0;
-	int tmp;
+	gsize tmp;
 	guint8 buf[8];
-	ssize_t out_len;
+	gsize out_len;
 	PurpleDES3CipherPrivate *priv = PURPLE_DES3_CIPHER_GET_PRIVATE(des3_cipher);
+
 	memcpy(buf, priv->iv, 8);
 
 	g_return_val_if_fail(out_size >= in_len, -1);
@@ -181,6 +183,7 @@
 
 	out_len = in_len;
 	if (offset < in_len) {
+		g_return_val_if_fail(in_len >= offset, -1);
 		out_len += in_len - offset;
 		g_return_val_if_fail(out_size >= out_len, -1);
 		tmp = offset;
@@ -223,11 +226,11 @@
 purple_des3_cipher_ecb_decrypt(PurpleDES3Cipher *des3_cipher, const guchar input[],
 							size_t in_len, guchar output[], size_t out_size)
 {
-	int offset = 0;
+	gsize offset = 0;
 	int i = 0;
-	int tmp;
+	gsize tmp;
 	guint8 buf[8] = {0,0,0,0,0,0,0,0};
-	ssize_t out_len;
+	gsize out_len;
 	PurpleDES3CipherPrivate *priv = PURPLE_DES3_CIPHER_GET_PRIVATE(des3_cipher);
 
 	g_return_val_if_fail(out_size >= in_len, -1);
@@ -246,6 +249,7 @@
 
 	out_len = in_len;
 	if (offset < in_len) {
+		g_return_val_if_fail(in_len >= offset, -1);
 		out_len += in_len - offset;
 		g_return_val_if_fail(out_size >= out_len, -1);
 		tmp = offset;
@@ -270,12 +274,12 @@
 purple_des3_cipher_cbc_decrypt(PurpleDES3Cipher *des3_cipher, const guchar input[],
 							size_t in_len, guchar output[], size_t out_size)
 {
-	int offset = 0;
+	gsize offset = 0;
 	int i = 0;
-	int tmp;
+	gsize tmp;
 	guint8 buf[8] = {0,0,0,0,0,0,0,0};
 	guint8 link[8];
-	ssize_t out_len;
+	gsize out_len;
 	PurpleDES3CipherPrivate *priv = PURPLE_DES3_CIPHER_GET_PRIVATE(des3_cipher);
 
 	g_return_val_if_fail(out_size >= in_len, -1);
@@ -299,6 +303,7 @@
 
 	out_len = in_len;
 	if(offset<in_len) {
+		g_return_val_if_fail(in_len >= offset, -1);
 		out_len += in_len - offset;
 		g_return_val_if_fail(out_size >= out_len, -1);
 		tmp = offset;

mercurial