@@ -303,7 +303,7 @@ static bool receiveSingleDref(dref_t in_dref, float* value)
303303 return false;
304304 }
305305
306- if (strncmp ((char * )buf , "RREF" , 4 ) != 0 ) {
306+ if (recvLen < 5 || strncmp ((char * )buf , "RREF" , 4 ) != 0 ) {
307307 return false;
308308 }
309309
@@ -572,12 +572,12 @@ static void exchangeDataWithXPlane(void)
572572 );
573573
574574 if (inavXitlDrefVersion >= XITL_DREF_VERSION ) {
575- if (rangefinderAltitude == 0xff ) {
575+ if (rangefinderAltitude == 0xffff ) {
576576 fakeRangefindersSetData (-1 );
577577 } else {
578578 fakeRangefindersSetData (rangefinderAltitude );
579579 }
580- } else if ( inavXitlDrefVersion < XITL_DREF_VERSION ) {
580+ } else {
581581 // Use AGL from X-Plane as rangefinder input
582582 const int32_t altitideOverGround = (int32_t )roundf (agl * 100 );
583583 if (altitideOverGround > 0 &&
@@ -625,7 +625,7 @@ static void exchangeDataWithXPlane(void)
625625 constrainToInt16 (magY * 1024.0f ),
626626 constrainToInt16 (magZ * 1024.0f )
627627 );
628- } else if ( inavXitlDrefVersion >= XITL_DREF_VERSION ) {
628+ } else {
629629 fakeBattSensorSetVbat (16.8f * 100 );
630630
631631 fpQuaternion_t quat ;
@@ -653,7 +653,6 @@ static void* listenWorker(void* arg)
653653 switch (connectionState ) {
654654 case CONNECTING :
655655
656-
657656 // First register all DREFs with 0 freq to clear previous ones
658657 registerCommonDrefs (0 );
659658 registerInavXitlDrefs (0 );
0 commit comments