Debarshi Ray 52d10816c7 completion: Avoid buffer overrun with strings having too many elements
Here are some strings representing valid refs:
  app/org.test.App/x86_64/stable - full ref
  org.test.App/x86_64/stable - full ref without prefix
  org.test.App - only app ID
  org.test.App/x86_64 - only app ID and arch
  org.test.App//stable - only app ID and branch

Therefore, if a ref's prefix (ie., 'app/' or 'runtime/) is skipped,
then there can only be a maximum of 3 other elements in it.

Right now, it's possible for find_current_element() to return a count
of 4, if the string being completed is invalid and has some extra
elements or slashes in it.  This count is later used to index the
cur_parts array which only has 4 elements in it.  This opens up the
possibility of a buffer overrun.

Invalid strings with extra elements or slashes can't be further
completed because none of the existing refs will match them.
Therefore, such strings should be outright skipped.

For the rest of the valid strings, the exact intended branch name is
never known, because the branch element doesn't have a trailing slash
and hence appears to be a prefix.  Therefore, it's not possible to use
the branch to find a list of existing refs that could possibly
complete the string.

Fallout from 7018717ce2
2026-03-19 23:40:29 +00:00
2025-12-15 17:58:23 +00:00
2022-10-24 16:12:14 +01:00
2026-01-21 17:58:19 +00:00
2026-01-21 17:58:19 +00:00
2022-10-24 16:12:14 +01:00
2026-03-19 21:22:39 +05:30
2026-01-21 17:58:19 +00:00
2025-05-07 17:54:28 +00:00
2022-10-24 16:12:14 +01:00
2026-01-21 17:58:19 +00:00
2018-02-05 15:21:40 +00:00
2015-03-31 15:36:29 +01:00
2022-09-26 14:35:40 +01:00
2026-03-15 11:13:11 +00:00
2026-03-15 11:13:11 +00:00
2025-05-10 23:54:21 -03:00

Flatpak icon

Flatpak is a system for building, distributing, and running sandboxed desktop applications on Linux.

See https://flatpak.org/ for more information.

Flatpak is available in the package repositories of most Linux distributions and can be installed from there. See https://flatpak.org/setup/ for quick setup instructions for many distributions.

Community discussion happens in #flatpak:matrix.org, on the mailing list, and on the Flathub Discourse.

Read documentation for Flatpak here.

Contributing

Flatpak welcomes contributions from anyone! Here are some ways you can help:

Hacking

See CONTRIBUTING.md

Related Projects

Here are some notable projects in the Flatpak ecosystem:

  • Flatseal: An app for managing permissions of Flatpak apps without using the CLI
  • Flat-manager: A tool for managing Flatpak repositories
Description
No description provided
Readme 66 MiB
Languages
C 91.1%
Shell 5.1%
Python 1.8%
Meson 1.1%
Yacc 0.8%