NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: PR/47879 CVS commit: src/sys/dev



The following reply was made to PR kern/47879; it has been noted by GNATS.

From: Takahiro HAYASHI <t-hash%abox3.so-net.ne.jp@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: kern-bug-people%netbsd.org@localhost, gnats-admin%netbsd.org@localhost, 
netbsd-bugs%netbsd.org@localhost
Subject: Re: PR/47879 CVS commit: src/sys/dev
Date: Sun, 30 Jun 2013 16:44:22 +0900

 Hello, sorry for late response.
 
 I have confirmed it works fine by doing drvctl -p.
 Thank you for fixing this prob.
 
 On Mon,  3 Jun 2013 20:30:01 +0000 (UTC)
 Takahiro HAYASHI <t-hash%abox3.so-net.ne.jp@localhost> wrote:
 
 > The following reply was made to PR kern/47879; it has been noted by GNATS.
 > 
 > From: Takahiro HAYASHI <t-hash%abox3.so-net.ne.jp@localhost>
 > To: gnats-bugs%NetBSD.org@localhost
 > Cc: kern-bug-people%NetBSD.org@localhost, gnats-admin%NetBSD.org@localhost, 
 > netbsd-bugs%NetBSD.org@localhost
 > Subject: Re: PR/47879 CVS commit: src/sys/dev
 > Date: Tue, 04 Jun 2013 05:28:55 +0900
 > 
 >  On Mon,  3 Jun 2013 16:45:01 +0000 (UTC)
 >  "Christos Zoulas" <christos%netbsd.org@localhost> wrote:
 >  
 >  > The following reply was made to PR kern/47879; it has been noted by GNATS.
 >  > 
 >  > From: "Christos Zoulas" <christos%netbsd.org@localhost>
 >  > To: gnats-bugs%gnats.NetBSD.org@localhost
 >  > Cc: 
 >  > Subject: PR/47879 CVS commit: src/sys/dev
 >  > Date: Mon, 3 Jun 2013 12:42:32 -0400
 >  > 
 >  >  Module Name:     src
 >  >  Committed By:    christos
 >  >  Date:            Mon Jun  3 16:42:32 UTC 2013
 >  >  
 >  >  Modified Files:
 >  >   src/sys/dev: vnd.c vndvar.h
 >  >  
 >  >  Log Message:
 >  >  PR/47879: Takahiro HAYASHI: vnd cannot handle disk image larger than 2TiB
 >  >  change size_t to uint64_t where needed.
 >  
 >  Thanks for commit but the fix is insufficient.
 >  
 >  In function vnd_set_geometry() of src/sys/dev/vnd.c, sectors per unit
 >  is the product of num of sectors, tracks and cylinders.
 >  This may cause interger overflow.
 >  
 >      dg->dg_secperunit = vnd->sc_geom.vng_nsectors *
 >          vnd->sc_geom.vng_ntracks * vnd->sc_geom.vng_ncylinders;
 >  
 >  The typeof right side variables are all uint32_t, so the result is
 >  calculated in interger.
 >  
 >  One of solutions to avoid overflow is to start right side
 >  with "1LL *".
 >  
 >      dg->dg_secperunit = 1LL * vnd->sc_geom.vng_nsectors *
 >          vnd->sc_geom.vng_ntracks * vnd->sc_geom.vng_ncylinders;
 >  
 >  Or cast first variable to int64_t.
 >  
 >      dg->dg_secperunit = (int64_t)vnd->sc_geom.vng_nsectors *
 >          vnd->sc_geom.vng_ntracks * vnd->sc_geom.vng_ncylinders;
 >  
 >  --
 >  t-hash
 >  
 
 --
 t-hash
 


Home | Main Index | Thread Index | Old Index