Package: libwayland-bin
Version: 1.23.0-1+b1
Severity: important

Hi,

wayland-scanner <= 1.23.0 has a bug where it misgenerates the is_valid
checks for bitfields thus breaking compositors e.g. using recent wlroots
as they reject valid dmabuf or layer surface bitfields, e.g.:

```
static inline bool
zwlr_layer_surface_v1_anchor_is_valid(uint32_t value, uint32_t version) {
        uint32_t valid = 0;
        if (version >= 1)
                valid |= ZWLR_LAYER_SURFACE_V1_ANCHOR_TOP;
        if (version >= 1)
                valid |= ZWLR_LAYER_SURFACE_V1_ANCHOR_BOTTOM;
        if (version >= 1)
                valid |= ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT;
        if (version >= 1)
                valid |= ZWLR_LAYER_SURFACE_V1_ANCHOR_RIGHT;
        return (value & ~valid) == 0;
}
```

which fails for bitfields where more than one value is set. 

This is fixed in upstream commit
f72f2aec55705faceaa6e1a40ad13d0f0b037cd2 and version 1.23.1.

where the check looks like

```
static inline bool
zwlr_layer_surface_v1_anchor_is_valid(uint32_t value, uint32_t version) {
        uint32_t valid = 0;
        if (version >= 1)
                valid |= ZWLR_LAYER_SURFACE_V1_ANCHOR_TOP;
        if (version >= 1)
                valid |= ZWLR_LAYER_SURFACE_V1_ANCHOR_BOTTOM;
        if (version >= 1)
                valid |= ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT;
        if (version >= 1)
                valid |= ZWLR_LAYER_SURFACE_V1_ANCHOR_RIGHT;
        return (value & ~valid) == 0;
}
```

Would be great if wayland could be updated in unstable.

Cheers,
 -- Guido


-- System Information:
Debian Release: trixie/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, 
'testing-debug'), (500, 'unstable'), (1, 'experimental-debug'), (1, 
'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: arm64

Kernel: Linux 6.11.4-amd64 (SMP w/12 CPU threads; PREEMPT)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages libwayland-bin depends on:
ii  libc6      2.40-3
ii  libexpat1  2.6.3-1
ii  libxml2    2.12.7+dfsg+really2.9.14-0.1

libwayland-bin recommends no packages.

libwayland-bin suggests no packages.

-- no debconf information

Reply via email to