]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
newer gcc does not like when you use out of bounds array indexes to access other...
authorAnthony Minessale <anthm@freeswitch.org>
Thu, 20 Jun 2013 15:16:32 +0000 (10:16 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Thu, 20 Jun 2013 15:16:35 +0000 (10:16 -0500)
libs/sofia-sip/libsofia-sip-ua/msg/msg_parser.c

index d75b975689d92ab11388ec0b65838d2d5172379c..875da3f61715c0a76cdcf401f458d8cc56aecbf8 100644 (file)
@@ -2470,8 +2470,6 @@ int msg_header_prepend(msg_t *msg,
 msg_header_t **
 msg_hclass_offset(msg_mclass_t const *mc, msg_pub_t const *mo, msg_hclass_t *hc)
 {
-  int i;
-
   assert(mc && hc);
 
   if (mc == NULL || hc == NULL)
@@ -2486,9 +2484,13 @@ msg_hclass_offset(msg_mclass_t const *mc, msg_pub_t const *mo, msg_hclass_t *hc)
   }
   else
     /* Header has no name. */
-    for (i = 0; i <= 6; i++)
-      if (hc->hc_hash == mc->mc_request[i].hr_class->hc_hash)
-       return (msg_header_t **)((char *)mo + mc->mc_request[i].hr_offset);
+  if (hc->hc_hash == mc->mc_request[0].hr_class->hc_hash) return (msg_header_t **)((char *)mo + mc->mc_request[0].hr_offset);
+  if (hc->hc_hash == mc->mc_status[0].hr_class->hc_hash) return (msg_header_t **)((char *)mo + mc->mc_status[0].hr_offset);
+  if (hc->hc_hash == mc->mc_separator[0].hr_class->hc_hash) return (msg_header_t **)((char *)mo + mc->mc_separator[0].hr_offset);
+  if (hc->hc_hash == mc->mc_payload[0].hr_class->hc_hash) return (msg_header_t **)((char *)mo + mc->mc_payload[0].hr_offset);
+  if (hc->hc_hash == mc->mc_unknown[0].hr_class->hc_hash) return (msg_header_t **)((char *)mo + mc->mc_unknown[0].hr_offset);
+  if (hc->hc_hash == mc->mc_error[0].hr_class->hc_hash) return (msg_header_t **)((char *)mo + mc->mc_error[0].hr_offset);
+  if (hc->hc_hash == mc->mc_multipart[0].hr_class->hc_hash) return (msg_header_t **)((char *)mo + mc->mc_multipart[0].hr_offset);
 
   return NULL;
 }