[#97] Bookmark ID number overflow

The application crashes (it closes) when I save certain addresses as bookmarks and then try to visit them by selecting from the bookmarks; for example, this happens with the URL gemini://nytpu.com/feed.gmi

example

#bug

๐Ÿž Issue #97 in s/Lagrange-Issues

๐Ÿš€ astio

2024-10-26 ยท 8 months ago

11 Comments โ†“

๐Ÿ•๏ธ skyjake [mod...] ยท 2024-10-26 at 18:08:

Is this with the latest beta? Could be a regression, let me check...

๐Ÿš€ astio [OP] ยท 2024-10-26 at 18:21:

the version is 1.18 (Beta 34)

๐Ÿš€ astio [OP] ยท 2024-10-27 at 19:32:

I don't think it's the version, it worked fine until two days ago, now every bookmark I add crashes. I tried clearing the cache and data, but when I import it happens again.

๐Ÿš€ astio [OP] ยท 2024-10-27 at 21:22:

Update: if I add an url to my bookmarks, I can no longer navigate to it; if I try to open it either from bookmarks or by typing it directly, or by going to it from another page, Lagrange closes; but if I remove it from bookmarks, everything works fine. However, this only happens with bookmarks created since a certain date, old bookmarks work fine.

๐Ÿš€ astio [OP] ยท 2024-10-28 at 12:31:

To recap, all bookmarks added since a certain time cause Lagrange to close.

๐Ÿš€ astio [OP] ยท 2024-10-28 at 17:30:

The problem seems to be in the bookmarks.ini file, specifically in the names of the sections: if the value is very high (a number with 6 digits), the bookmark does not work, e.g. the first bookmark does not work and the second does:

[239568]

url = "gemini://aaa.aa"

title = "aaa"

tags = ".usericon"

icon = 0x1f659

created = 1729876334 # 2024-10-25

parent = 23955

order = 4

[33]

url = "gemini://bbb.bb"

title = "bbb"

tags = ".usericon"

icon = 0x2690

created = 1729962346 # 2024-10-26

parent = 15

order = 63

๐Ÿ•๏ธ skyjake [mod...] ยท 2024-10-30 at 10:36:

Thanks for the details. If the problem is with the numbering, I can always force a renumbering to avoid the unnecessary range inflation.

๐Ÿ™ cthulhu ยท Feb 24 at 00:26:

Also affected: Android 1.18 (Beta 35); Linux 1.18.4;

Bookmark:

[77539]
url = "gemini://salixos.org/"
title = "Linux for the lazy Slacker"
tags = ".usericon"
icon = 0x1f30a
created = 1740352870  # 2025-02-24
order = 100

Commit f725bf7f ยท Fixed: Bookmarks crash with correct id type (uint16_t -> uint32_t)

Feb 25 ยท 4 months ago

๐Ÿ™ cthulhu ยท Feb 25 at 02:57:

@skyjake, it is typo in id type in `documentwidget.c:documentWasChanged_DocumentWidget_`.

`uint16_t` is too small for `uint32_t` bookmark id. Truncated id, not found bookmark, iBookmark is NULL.

-    const uint16_t bmid = findBookmarkId_DocumentWidget(d);
+    const uint32_t bmid = findBookmarkId_DocumentWidget(d);

๐Ÿ™ cthulhu ยท Feb 25 at 03:22:

โ€” Fixed: Bookmarks crash with correct id type (uint16_t -> uint32_t) #4

๐Ÿ•๏ธ skyjake [mod...] ยท Feb 25 at 05:32:

That would explain it, yes. I'm still planning on fixing the ID number inflation, as that seems like an issue that eventually triggers an overflow anyway.


Source