Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Divide by zero in WindowInfo::constrain_resize() #3663

Closed
AlanGriffiths opened this issue Nov 6, 2024 · 0 comments · Fixed by #3664 or #3686
Closed

Divide by zero in WindowInfo::constrain_resize() #3663

AlanGriffiths opened this issue Nov 6, 2024 · 0 comments · Fixed by #3664 or #3686

Comments

@AlanGriffiths
Copy link
Collaborator

The methods min_aspect() and max_aspect() can return AspectRatio{0U, std::numeric_limits<unsigned>::max()} and AspectRatio{std::numeric_limits<unsigned>::max(), 0U} respectively. But WindowInfo::constrain_resize() divides by both ar.height and ar.width without checking for 0:

Thread 1 "miral-shell.bin" received signal SIGFPE, Arithmetic exception.
0x00007b8821332135 in miral::WindowInfo::constrain_resize (this=0x7b87a808a9c0, requested_pos=..., requested_size=...) at /home/alan/CLionProjects/mir/src/miral/window_info.cpp:229
229	            auto const width_correction  = (error+(ar.height-1))/ar.height;
github-merge-queue bot pushed a commit that referenced this issue Nov 7, 2024
@RAOF RAOF closed this as completed in #3664 Nov 7, 2024
github-merge-queue bot pushed a commit that referenced this issue Dec 3, 2024
# rc1

  * New upstream release 2.19.0

    - ABI summary:
      . miral ABI unchanged at 7
      . mircommon ABI unchanged at 10
      . mircore ABI unchanged at 2
      . miroil ABI unchanged at 5
      . mirplatform ABI bumped to 30
      . mirserver ABI bumped to 61
      . mirwayland ABI unchanged at 5
      . mirplatformgraphics ABI unchanged at 22
      . mirinputplatform ABI unchanged at 9

    - Enhancements:
. [x11-kiosk] defer fullscreening of applications until they are placed
once (#3670)
. [x11-kiosk] Ensure windows are placed and repainted on X11 "CONFIGURE"
(#3619)
      . [x11-kiosk] change enable-x11 default to true
      . Initial atomic-kms platform
      . [Wayland] Add support for xdg_activation_v1 (#3639)
      . Do not default window size (especially to weird values) (#3623)
. DesktopFileManager::resolve_app_id no longer returns an app id with a
.desktop file suffix (Fixes #3608)
. [Configuration] Split options into global and per-module configuration
(#3590)

    - Bugs fixed:
      . Ensure we always send an initial output enter (#3680)
      . Fix stuck-frame-after-mode-switch bug (#3673)
. Fix rendering of resized XWayland applications with client side
decorations (#3587)
      . Aspect ratios shouldn't contain zero (Fixes: #3663)
      . Use PkgConfig to find development headers (#3661)
. Fix the inotify event handling in
ReloadingYamlFileDisplayConfig::auto_reload() (#3636)
. The `miral::ConfigFile` "Watcher" can be destroyed before the main
loop (Fixes: #3612)
      . [xwayland] Don't allow clients to place X11 windows (#3622)
. Surfaces track scale changes on outputs they appear on. (Fixes: #3552)
      . New attached windows need to be placed (#3676)

----
[Test
Plan](https://canonical-mir.readthedocs-hosted.com/latest/how-to/how-to-test-mir-for-a-release/)

### Platforms
|| 24.04 | 24.10 |
|-|-|-|
| gbm-kms |@AlanGriffiths|@AlanGriffiths|
| atomic-kms |@AlanGriffiths|@AlanGriffiths|
| eglstream-kms |@tarek-y-ismail||
| eglstream-kms + gbm-kms hybrid |@tarek-y-ismail||
| x11 |@AlanGriffiths|@AlanGriffiths|
| wayland |@AlanGriffiths|@AlanGriffiths|
| virtual |@AlanGriffiths|@AlanGriffiths|

### Console Providers
|| 24.04 | 24.10 |
|-|-|-|
| vt |@AlanGriffiths|@AlanGriffiths|
| logind |@AlanGriffiths|@AlanGriffiths|
| minimal |@AlanGriffiths||

### Window Manager Examples
|| 24.04 | 24.10 |
|-|-|-|
| --window-manager=floating |@AlanGriffiths|@AlanGriffiths|
| --window-manager=tiling |@AlanGriffiths||
| -kiosk |@AlanGriffiths||
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant