Parcourir la source

parser/sdp: check if value is exceeded when looking for o= version field

(cherry picked from commit c532a67db654efb21f81e058b7e3a86229766a40)
Daniel-Constantin Mierla il y a 5 mois
Parent
commit
d3d62bde97
1 fichiers modifiés avec 6 ajouts et 1 suppressions
  1. 6 1
      src/core/parser/sdp/sdp_helpr_funcs.c

+ 6 - 1
src/core/parser/sdp/sdp_helpr_funcs.c

@@ -735,7 +735,12 @@ int extract_sess_version(str *oline, str *sess_version)
 		}
 
 		i++;
-	} while(len < oline->len && i < 3);
+	} while((cp < oline->s + oline->len) && i < 3);
+
+	if(cp >= oline->s + oline->len) {
+		LM_ERR("broken o= line - version field not found\n");
+		return -1;
+	}
 
 	len = cp - cp0 - 1;
 	LM_DBG("end %d: >%.*s<\n", len, len, cp0);