Skip to content

Commit 7ffe91b

Browse files
committed
port fix for a segfault: stefan11111/kdrive@0aa5ca4 and use sizeof instead of strlen
1 parent feab72c commit 7ffe91b

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

kdrive/linux/mouse.c

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -386,8 +386,7 @@ static const KmouseProt exps2Prot = {
386386
#define PSM_4DPLUS_ID 8
387387

388388
static const unsigned char ps2_init[] = {
389-
PSMC_ENABLE_DEV,
390-
0,
389+
PSMC_ENABLE_DEV
391390
};
392391

393392
#define NINIT_PS2 1
@@ -397,7 +396,6 @@ static const unsigned char wheel_3button_init[] = {
397396
PSMC_SET_SAMPLING_RATE, 100,
398397
PSMC_SET_SAMPLING_RATE, 80,
399398
PSMC_SEND_DEV_ID,
400-
0,
401399
};
402400

403401
#define NINIT_IMPS2 4
@@ -410,7 +408,6 @@ static const unsigned char wheel_5button_init[] = {
410408
PSMC_SET_SAMPLING_RATE, 200,
411409
PSMC_SET_SAMPLING_RATE, 80,
412410
PSMC_SEND_DEV_ID,
413-
0
414411
};
415412

416413
#define NINIT_EXPS2 7
@@ -419,7 +416,6 @@ static const unsigned char intelli_init[] = {
419416
PSMC_SET_SAMPLING_RATE, 200,
420417
PSMC_SET_SAMPLING_RATE, 100,
421418
PSMC_SET_SAMPLING_RATE, 80,
422-
0
423419
};
424420

425421
#define NINIT_INTELLI 3
@@ -458,7 +454,7 @@ static Bool ps2Init(KdMouseInfo * mi)
458454
int ninit;
459455

460456
/* Send Intellimouse initialization sequence */
461-
MouseWriteBytes(km->iob.fd, intelli_init, strlen((char *)intelli_init),
457+
MouseWriteBytes(km->iob.fd, intelli_init, sizeof(intelli_init),
462458
100);
463459
/*
464460
* Send ID command
@@ -484,7 +480,7 @@ static Bool ps2Init(KdMouseInfo * mi)
484480
break;
485481
}
486482
if (init)
487-
MouseWriteBytes(km->iob.fd, init, strlen((char *)init), 100);
483+
MouseWriteBytes(km->iob.fd, init, sizeof(init), 100);
488484
/*
489485
* Flush out the available data to eliminate responses to the
490486
* initialization string. Make sure any partial event is
@@ -729,6 +725,9 @@ static void MouseFirstProtocol(Kmouse * km, char *prot)
729725
for (i = 0; i < NUM_PROT; i++)
730726
ErrorF(" %s", kmouseProts[i]->name);
731727
ErrorF("\n");
728+
km->i_prot = 0;
729+
km->prot = kmouseProts[km->i_prot];
730+
ErrorF("Falling back to %s\n", km->prot->name);
732731
} else {
733732
km->prot = kmouseProts[km->i_prot];
734733
if (km->tty && !km->prot->tty)
@@ -754,7 +753,7 @@ static void MouseNextProtocol(Kmouse * km)
754753
do {
755754
if (!km->prot)
756755
km->i_prot = 0;
757-
else if (++km->i_prot == NUM_PROT)
756+
else if (++km->i_prot >= NUM_PROT)
758757
km->i_prot = 0;
759758
km->prot = kmouseProts[km->i_prot];
760759
} while (km->prot->tty != km->tty);

0 commit comments

Comments
 (0)