Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Segmentation fault when blur-opacity goes negative in animation #1493

Description

@CyberKite

Issue

If an animation defines a negative value for blur-opacity, picom dies with a segmentation fault.

Expected Behaviour

The blur opacity is treated the same as 0, or feeds a negative value into the blending logic, then clamp()s.
First one makes more sense, since that's how normal opacity works too

Actual Behaviour

Picom segfaults (Segmentation fault (core dumped) ./picom --config /tmp/1000/picom_repro_conf.conf)

Reproduction

  1. (Build picom from main)
  2. Start picom in a terminal with the below config file, be it as the default or with --config (./picom --config /tmp/blur_opacity_crash.conf )
  3. Maybe make sure there is some color data below the window you're about to open? Haven't checked if necessary, but I use feh.
  4. Open a window if it doesn't crash by itself
backend = "glx";
#backend = "egl";
#backend = "xrender";
#all work

blur:
{
    method = "dual_kawase";
    strength = 10;
}

animations = (
    {
        triggers = [ "show", "open" ];
        t = {
            duration = 1;
            start = 1;
            end = -1;
        };
        blur-opacity = "t";
    }
)

Reproduces on

v13 (https://github.com/yshui/picom revision 5086085)
v12.5 (/srcdest/picom revision a456d43)

Operating System

OS - Arch Linux x86_64
Kernel - Linux 6.18.5-zen1-1-zen
Shell - bash 5.3.9
WM - bspwm (X11)
Terminal - kitty 0.45.0 (configured transparency)
Locale - en_US.UTF-8

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions