missing check for option --family-id

Hi all, in the garmin forum there is a discussion about the range : https://forum.openstreetmap.org/viewtopic.php?pid=782395#p782395 The current options.txt says --family-id=integer This is an integer that identifies a family of products. Range: [1..9999] Default: 6324 This limit is neither checked nor is it correct. The corresponding value is stored in a two byte field and most mkgmap sources interpret it as a 16-bit-unsigned integer. However, in class uk.me.parabola.tdbfmt.HeaderBlock the field is stored in a short (signed 16-bit-int). My conclusion: We should print a warning when the value given in --family-id is < 0 or > 32767. Gerd

Hi Gerd In the short term, warn if value < 0 or > 32767. In the longer term, the methods in io/Structured{Input/Output}Stream should be brought into line with the naming conventions in imgfmt/app/*File{Reader/Writer} and the calls changed; the only references are in imgfmt/mps and tdbfmt Then tdb should be changed to consider this unsigned, store the vals as an int, read/write with unsigned methods and change the warning range. I'm happy to do the second set of changes sometime. Ticker On Tue, 2020-04-07 at 10:08 +0000, Gerd Petermann wrote:
Hi all, in the garmin forum there is a discussion about the range : https://forum.openstreetmap.org/viewtopic.php?pid=782395#p782395
The current options.txt says --family-id=integer This is an integer that identifies a family of products. Range: [1..9999] Default: 6324
This limit is neither checked nor is it correct. The corresponding value is stored in a two byte field and most mkgmap sources interpret it as a 16-bit-unsigned integer. However, in class uk.me.parabola.tdbfmt.HeaderBlock the field is stored in a short (signed 16-bit-int).
My conclusion: We should print a warning when the value given in - -family-id is < 0 or > 32767.
Gerd _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Hi, I am not sure about the lower limit of 1. Zero may be acceptable. The upper limit should be checked for as some Garmin receivers have problems with file names\ prefixes longer than eight characters, which comes from the old MSDOS FAT limit of 8 character prefix and 3 character suffix file name format. Randolph J. Herber On 4/7/2020 5:08 AM, Gerd Petermann wrote:
Hi all, in the garmin forum there is a discussion about the range : https://forum.openstreetmap.org/viewtopic.php?pid=782395#p782395
The current options.txt says --family-id=integer This is an integer that identifies a family of products. Range: [1..9999] Default: 6324
This limit is neither checked nor is it correct. The corresponding value is stored in a two byte field and most mkgmap sources interpret it as a 16-bit-unsigned integer. However, in class uk.me.parabola.tdbfmt.HeaderBlock the field is stored in a short (signed 16-bit-int).
My conclusion: We should print a warning when the value given in --family-id is < 0 or > 32767.
Gerd _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Hi all it seems that all family-id values from 1 .. 65535 work fine. A map with value 0 is not listed in MapSource. @Randolph: You must be referring to a differnt option, maybe --mapname? Gerd ________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces@lists.mkgmap.org.uk> im Auftrag von Randolph J. Herber <army.bronze.star@gmail.com> Gesendet: Dienstag, 7. April 2020 15:07 An: mkgmap-dev@lists.mkgmap.org.uk Betreff: Re: [mkgmap-dev] missing check for option --family-id Hi, I am not sure about the lower limit of 1. Zero may be acceptable. The upper limit should be checked for as some Garmin receivers have problems with file names\ prefixes longer than eight characters, which comes from the old MSDOS FAT limit of 8 character prefix and 3 character suffix file name format. Randolph J. Herber On 4/7/2020 5:08 AM, Gerd Petermann wrote:
Hi all, in the garmin forum there is a discussion about the range : https://forum.openstreetmap.org/viewtopic.php?pid=782395#p782395
The current options.txt says --family-id=integer This is an integer that identifies a family of products. Range: [1..9999] Default: 6324
This limit is neither checked nor is it correct. The corresponding value is stored in a two byte field and most mkgmap sources interpret it as a 16-bit-unsigned integer. However, in class uk.me.parabola.tdbfmt.HeaderBlock the field is stored in a short (signed 16-bit-int).
My conclusion: We should print a warning when the value given in --family-id is < 0 or > 32767.
Gerd _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
participants (4)
-
Gerd Petermann
-
Gerd Petermann
-
Randolph J. Herber
-
Ticker Berkin