@@ -1557,7 +1557,7 @@ static int decoderEngine(decodeRec *dec) {
15571557 dec -> context = ccode ;
15581558 dec -> mapcode = dec -> mapcodeFormat .properMapcode ;
15591559 dec -> extension = dec -> mapcodeFormat .precisionExtension ;
1560- codex = dec -> mapcodeFormat .indexOfDot * 9 + dec -> mapcodeFormat .properMapcodeLength - 1 ;
1560+ codex = dec -> mapcodeFormat .indexOfDot * 9 + ( int ) strlen ( dec -> mapcodeFormat .properMapcode ) - 1 ;
15611561 s = dec -> mapcodeFormat .properMapcode ;
15621562
15631563 if (strchr (s , 'A' ) || strchr (s , 'E' ) || strchr (s , 'U' )) {
@@ -2060,9 +2060,9 @@ int parseMapcodeString(MapcodeElements *mapcodeFormat, const char *asciiString,
20602060 }
20612061 // end of proper mapcode
20622062 if (mapcodeFormat ) {
2063- mapcodeFormat -> properMapcodeLength = (int ) (asciiString - mcStart );
2064- memcpy (mapcodeFormat -> properMapcode , mcStart , mapcodeFormat -> properMapcodeLength );
2065- mapcodeFormat -> properMapcode [mapcodeFormat -> properMapcodeLength ] = 0 ;
2063+ int properMapcodeLength = (int ) (asciiString - mcStart );
2064+ memcpy (mapcodeFormat -> properMapcode , mcStart , properMapcodeLength );
2065+ mapcodeFormat -> properMapcode [properMapcodeLength ] = 0 ;
20662066 makeupper (mapcodeFormat -> properMapcode );
20672067 }
20682068 } else if (newstate >= 64 ) { // end of territory
@@ -2089,7 +2089,7 @@ int parseMapcodeString(MapcodeElements *mapcodeFormat, const char *asciiString,
20892089 } else {
20902090 mapcodeFormat -> territoryCode = territoryCode ;
20912091 }
2092- if (mapcodeFormat -> territoryCode == (ccode_mex + 1 ) && (mapcodeFormat -> properMapcodeLength < 8 )) {
2092+ if (mapcodeFormat -> territoryCode == (ccode_mex + 1 ) && (strlen ( mapcodeFormat -> properMapcode ) < 8 )) {
20932093 mapcodeFormat -> territoryCode = getTerritoryCode ("5MX" , -1 );
20942094 }
20952095 }
0 commit comments