diff libfaim/aim_chatnav.c @ 715:58106806ac2b

[gaim-migrate @ 725] yay committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Fri, 18 Aug 2000 00:21:53 +0000
parents e4c34ca88d9b
children 26e96119d5a5
line wrap: on
line diff
--- a/libfaim/aim_chatnav.c	Thu Aug 17 23:23:24 2000 +0000
+++ b/libfaim/aim_chatnav.c	Fri Aug 18 00:21:53 2000 +0000
@@ -68,6 +68,7 @@
   struct aim_snac_t *snac;
   u_long snacid;
   rxcallback_t userfunc;
+  int ret=1;
   
   snacid = aimutil_get32(command->data+6);
   snac = aim_remsnac(sess, snacid);
@@ -96,7 +97,6 @@
 	  int curexchange = 0;
 	  struct aim_tlv_t *exchangetlv;
 	  u_char maxrooms = 0;
-	  int ret = 1;
 	  struct aim_tlvlist_t *innerlist;
 	 
 	  tlvlist = aim_readtlvchain(command->data+10, command->commandlen-10);
@@ -215,7 +215,8 @@
 		exchanges[curexchange-1].lang2 = aim_gettlv_str(innerlist, 0x00d9, 1);
 	      else
 		exchanges[curexchange-1].lang2 = NULL;
-
+	      
+	      aim_freetlvchain(&innerlist);
 	    }
 	  
 	  /*
@@ -245,33 +246,38 @@
 	      curexchange--;
 	    }
 	  free(exchanges);
-	  aim_freetlvchain(&innerlist);
 	  aim_freetlvchain(&tlvlist);
-	  return ret;
+	  
+	  break;
       }
     case 0x0003: /* request exchange info */
       printf("faim: chatnav_parse_info: resposne to exchange info\n");
-      return 1;
+      break;
     case 0x0004: /* request room info */
       printf("faim: chatnav_parse_info: response to room info\n");
-      return 1;
+      break;
     case 0x0005: /* request more room info */
       printf("faim: chatnav_parse_info: response to more room info\n");
-      return 1;
+      break;
     case 0x0006: /* request occupant list */
       printf("faim: chatnav_parse_info: response to occupant info\n");
-      return 1;
+      break;
     case 0x0007: /* search for a room */
       printf("faim: chatnav_parse_info: search results\n");
-      return 1;
+      break;
     case 0x0008: /* create room */
       printf("faim: chatnav_parse_info: response to create room\n");
-      return 1;
+      break;
     default: /* unknown */
       printf("faim: chatnav_parse_info: unknown request subtype (%04x)\n", snac->type);
     }
 
-  return 1; /* shouldn't get here */
+  if (snac && snac->data)
+    free(snac->data);
+  if (snac)
+    free(snac);
+  
+  return ret;
 }
 
 u_long aim_chatnav_createroom(struct aim_session_t *sess,