Bug 8369 - tl-config hangs when tab completing if config contains double slashes
Summary: tl-config hangs when tab completing if config contains double slashes
Status: NEW
Alias: None
Product: ThinLinc
Classification: Unclassified
Component: Misc (show other bugs)
Version: trunk
Hardware: PC Unknown
: P2 Normal
Target Milestone: LowPrio
Assignee: Bugzilla mail exporter
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-06-19 12:30 CEST by Tobias
Modified: 2024-07-12 11:18 CEST (History)
1 user (show)

See Also:
Acceptance Criteria:


Attachments

Description Tobias cendio 2024-06-19 12:30:38 CEST
This was found with server build #3632 on RHEL9.

Manually inserting such an input to tl-config and pressing enter works,
> $ tl-config /vsmagent/foo/bar//baz
> "qux"
and same with flag -a,
> $ tl-config -a /vsmagent/foo/bar//
> baz = "qux"
However, attempting to tab complete hangs the process and yields a traceback (already at root level),
>$ tl-config /Traceback (most recent call last):
>  File "/opt/thinlinc/bin/../bin/hivetool", line 585, in <module>
>    main()
>  File "/opt/thinlinc/bin/../bin/hivetool", line 517, in main
>    (options, args) = parser.parse_args()
>  File "/opt/thinlinc/modules/thinlinc/optionparse.py", line 56, in parse_args
>    self . tab_complete ( )
>  File "/opt/thinlinc/modules/thinlinc/optionparse.py", line 380, in tab_complete
>    oc . autocomplete ( self , arg_completer = self . get_argument_completer ( ) , disable_files = ii1IiiI , exit_code = exit_code )
>  File "/opt/thinlinc/modules/thinlinc/optcomplete.py", line 391, in autocomplete
>    result = completer(os.getcwd(), cline, cpoint, prefix, suffix)
>  File "/opt/thinlinc/bin/../bin/hivetool", line 359, in param_completer
>    subfolders = get_folders(hive, source, recursive=False)
>  File "/opt/thinlinc/bin/../bin/hivetool", line 198, in get_folders
>    completions += get_folders(hive, root + "/" + \
>  File "/opt/thinlinc/bin/../bin/hivetool", line 198, in get_folders
>    completions += get_folders(hive, root + "/" + \
>  File "/opt/thinlinc/bin/../bin/hivetool", line 198, in get_folders
>    completions += get_folders(hive, root + "/" + \
>  File "/opt/thinlinc/bin/../bin/hivetool", line 201, in get_folders
>    if hive.lookup(folder):
>  File "/opt/thinlinc/modules/thinlinc/hiveconf.py", line 561, in lookup
>    return self._lookup_list(comps, autocreate)
>  File "/opt/thinlinc/modules/thinlinc/hiveconf.py", line 603, in _lookup_list
>    return obj._lookup_list(rest_comps, autocreate, sectionname)
>  File "/opt/thinlinc/modules/thinlinc/hiveconf.py", line 603, in _lookup_list
>    return obj._lookup_list(rest_comps, autocreate, sectionname)
>  File "/opt/thinlinc/modules/thinlinc/hiveconf.py", line 603, in _lookup_list
>    return obj._lookup_list(rest_comps, autocreate, sectionname)
>  [Previous line repeated 1 more time]
>  File "/opt/thinlinc/modules/thinlinc/hiveconf.py", line 572, in _lookup_list
>    print("_lookup_list with components:", repr(comps), file=debugw)
>KeyboardInterrupt
>^C
Seems to be independent of where and how many the consecutive slashes are. For instance, this works through manual entry:
> $ tl-config -a /vsmagent/foo/////bar
> baz = "qux"
but similarly yields a crash when tabbing.

Unsure if this bug existed before bug 7940 was resolved.
Comment 1 Samuel Mannehed cendio 2024-06-25 13:22:19 CEST
To clarify, this happens if the configuration file includes a path with double slashes. It's not only about specifying double slashes on the commandline when invoking tl-config.

Note You need to log in before you can comment on or make changes to this bug.