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;
 	}

Reply via email to