You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@guacamole.apache.org by "Mike Jumper (Jira)" <ji...@apache.org> on 2026/04/02 05:29:00 UTC

[jira] [Resolved] (GUACAMOLE-2241) guac_display_plan_create() may loop indefinitely

     [ https://issues.apache.org/jira/browse/GUACAMOLE-2241?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mike Jumper resolved GUACAMOLE-2241.
------------------------------------
    Resolution: Fixed

> guac_display_plan_create() may loop indefinitely
> ------------------------------------------------
>
>                 Key: GUACAMOLE-2241
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-2241
>             Project: Guacamole
>          Issue Type: Bug
>    Affects Versions: 1.6.0
>            Reporter: Mike Jumper
>            Assignee: Mike Jumper
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.6.1 [staging]
>
>
> As [reported on the user@ list|https://lists.apache.org/thread/b8758cw4nxllqvfx78f2fr1r454mkry3]:
> {quote}
> ... at the function {{PFW_LFR_guac_display_plan_create}}
> https://github.com/apache/guacamole-server/blob/772a65a3334f7ded6d43cbe5e2ed347040a1fb52/src/libguac/display-plan.c#L157 ...
> Can there be a case where the buffers of the layers of display might already have been set to NULL and it enters this function because of which, it will keep on looping after checking this if condition,
> {code:c}
> if (current->pending_frame.buffer == NULL) {
>     GUAC_ASSERT(current->pending_frame.buffer_is_external);
>     continue;
> }
> {code}
> {quote}
> This is indeed a bug. The current pointer needs to be advanced before 
> continuing:
> {code:c}
> if (current->pending_frame.buffer == NULL) {
>     GUAC_ASSERT(current->pending_frame.buffer_is_external);
>     current = current->pending_frame.next;
>     continue;
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)