Module Name: src
Committed By: christos
Date: Fri Aug 5 06:54:22 UTC 2016
Modified Files:
src/sys/dev/ata: wd.c
Log Message:
CID 1364758: Integer handling issues, avoid sign extension to 64 bits.
To generate a diff of this commit:
cvs rdiff -u -r1.425 -r1.426 src/sys/dev/ata/wd.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/ata/wd.c
diff -u src/sys/dev/ata/wd.c:1.425 src/sys/dev/ata/wd.c:1.426
--- src/sys/dev/ata/wd.c:1.425 Fri Jul 22 08:55:34 2016
+++ src/sys/dev/ata/wd.c Fri Aug 5 02:54:22 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: wd.c,v 1.425 2016/07/22 12:55:34 jakllsch Exp $ */
+/* $NetBSD: wd.c,v 1.426 2016/08/05 06:54:22 christos Exp $ */
/*
* Copyright (c) 1998, 2001 Manuel Bouyer. All rights reserved.
@@ -54,7 +54,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wd.c,v 1.425 2016/07/22 12:55:34 jakllsch Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wd.c,v 1.426 2016/08/05 06:54:22 christos Exp $");
#include "opt_ata.h"
@@ -394,8 +394,8 @@ wdattach(device_t parent, device_t self,
if ((wd->sc_params.atap_secsz & ATA_SECSZ_VALID_MASK) == ATA_SECSZ_VALID
&& ((wd->sc_params.atap_secsz & ATA_SECSZ_LLS) != 0)) {
wd->sc_blksize = 2ULL *
- (wd->sc_params.atap_lls_secsz[1] << 16 |
- wd->sc_params.atap_lls_secsz[0] << 0);
+ ((uint32_t)((wd->sc_params.atap_lls_secsz[1] << 16) |
+ wd->sc_params.atap_lls_secsz[0]));
} else {
wd->sc_blksize = 512;
}