mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-08 13:29:45 -05:00
Fix bugs listed by clang's static analyzer
A few pedantic changes and unused variables (1-4), and genuine bugs (5, 6). The reports with the corresponding files and lines numbers are as follows. 1. backend/libinput/tablet_pad.c@31,44,57 "Allocator sizeof operand mismatch" "Result of 'calloc' is converted to a pointer of type 'unsigned int', which is incompatible with sizeof operand type 'int'" 2. types/tablet_v2/wlr_tablet_v2_pad.c@371 "Allocator sizeof operand mismatch" "Result of 'calloc' is converted to a pointer of type 'uint32_t', which is incompatible with sizeof operand type 'int'" 3. types/wlr_cursor.c@335 "Dead initialization" "Value stored to 'dx'/'dy' during its initialization is never read" 4. rootston/xdg_shell.c@510 "Dead initialization" "Value stored to 'desktop' during its initialization is never read" 5. types/tablet_v2/wlr_tablet_v2_pad.c@475 "Dereference of null pointer" "Access to field 'strips' results in a dereference of a null pointer (loaded from field 'current_client')" The boolean logic was incorrect (c.f. the check in the following function). 6. examples/idle.c@163,174,182 "Uninitialized argument value" "1st function call argument is an uninitialized value" If close_timeout != 0, but simulate_activity_timeout >= close_timeout, the program would segfault at pthread_cancel(t1).
This commit is contained in:
parent
2f48453718
commit
8589ae19de
5 changed files with 22 additions and 17 deletions
|
|
@ -368,7 +368,7 @@ struct wlr_tablet_v2_tablet_pad *wlr_tablet_pad_create(
|
|||
}
|
||||
|
||||
pad->group_count = wl_list_length(&wlr_pad->groups);
|
||||
pad->groups = calloc(pad->group_count, sizeof(int));
|
||||
pad->groups = calloc(pad->group_count, sizeof(uint32_t));
|
||||
if (!pad->groups) {
|
||||
free(pad);
|
||||
return NULL;
|
||||
|
|
@ -471,9 +471,9 @@ void wlr_send_tablet_v2_tablet_pad_button(
|
|||
|
||||
void wlr_send_tablet_v2_tablet_pad_strip(struct wlr_tablet_v2_tablet_pad *pad,
|
||||
uint32_t strip, double position, bool finger, uint32_t time) {
|
||||
if (!pad->current_client &&
|
||||
pad->current_client->strips &&
|
||||
pad->current_client->strips[strip]) {
|
||||
if (!pad->current_client ||
|
||||
!pad->current_client->strips ||
|
||||
!pad->current_client->strips[strip]) {
|
||||
return;
|
||||
}
|
||||
struct wl_resource *resource = pad->current_client->strips[strip];
|
||||
|
|
|
|||
|
|
@ -332,7 +332,7 @@ static void handle_pointer_motion(struct wl_listener *listener, void *data) {
|
|||
|
||||
static void apply_output_transform(double *x, double *y,
|
||||
enum wl_output_transform transform) {
|
||||
double dx = *x, dy = *y;
|
||||
double dx, dy;
|
||||
double width = 1.0, height = 1.0;
|
||||
|
||||
switch (transform) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue