Ignore:
Timestamp:
Oct 24, 2026, 11:14:36 PM (3 days ago)
Author:
stuerze
Message:

Some fixes from security point of view

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/RTCM3/clock_and_orbit/clock_orbit_rtcm_new.cpp

    r11124 r11126  
    472472      for (i = 0; i < md->NumEntries; i++) {
    473473        E_MODEL_CORRECTION_TYPE_INDICATOR(md->Entries[i].TypeIndicator)
    474         E_ADDITIONAL_MODEL_PARAMETER_INDICATOR(md->Entries[i].ApplicationIndicator)
     474        E_MODEL_CORRECTION_APPLICATION_INDICATOR(md->Entries[i].ApplicationIndicator)
    475475        E_NON_DEFAULT_MODEL_CORRECTION_INDICATOR(md->Entries[i].nonDefaultIndicator)
    476476        if (md->Entries[i].nonDefaultIndicator) {
    … …  
    489489        if (md->Entries[i].nonDefaultIndicator &&
    490490            md->Entries[i].additionalParameterIndicator) {
    491           E_ADDITIONAL_MODEL_PARAMETER_DATA(md->Entries[i].additionalParameterData, md->Entries[i].additionalParameterNumBits)       
     491          /* up to 255 bits, only 32 stored (leading bits zero); in pieces of
     492             16 bits, as ADDBITS cannot handle more than 30 bits */
     493          unsigned int k = md->Entries[i].additionalParameterNumBits;
     494          while (k) {
     495            unsigned int n = (k > 16) ? 16 : k;
     496            k -= n;
     497            E_ADDITIONAL_MODEL_PARAMETER_DATA((k < 32) ? (md->Entries[i].additionalParameterData >> k) : 0, n)
     498          }
    492499      }
    493500    }
Note: See TracChangeset for help on using the changeset viewer.