Message ID | 1353565548-10010-1-git-send-email-sw@weilnetz.de |
---|---|
State | Accepted |
Headers | show |
On Thu, Nov 22, 2012 at 07:25:48AM +0100, Stefan Weil wrote: > The local string tmp_filename is passed to function get_tmp_filename > which expects a string with minimum size MAX_PATH for w32 hosts. > > MAX_PATH is 260 and PATH_MAX is 259, so tmp_filename was too short. > > Commit eba25057b9a5e19d10ace2bc7716667a31297169 introduced this > regression. > > Signed-off-by: Stefan Weil <sw@weilnetz.de> > --- > > v2: Added TODO comment as suggested by Stefan Hajnoczi. > > Hi Anthony, hi Blue, > > this fix is needed for 1.3 to avoid a fatal assertion on Windows. > As discussed on qemu-devel, it is a minimal solution and can be > replaced by a better one after 1.3. > > Please commit it to git master. > > Regards > Stefan > > > block.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Thanks, applied. On Thu, Nov 22, 2012 at 6:25 AM, Stefan Weil <sw@weilnetz.de> wrote: > The local string tmp_filename is passed to function get_tmp_filename > which expects a string with minimum size MAX_PATH for w32 hosts. > > MAX_PATH is 260 and PATH_MAX is 259, so tmp_filename was too short. > > Commit eba25057b9a5e19d10ace2bc7716667a31297169 introduced this > regression. > > Signed-off-by: Stefan Weil <sw@weilnetz.de> > --- > > v2: Added TODO comment as suggested by Stefan Hajnoczi. > > Hi Anthony, hi Blue, > > this fix is needed for 1.3 to avoid a fatal assertion on Windows. > As discussed on qemu-devel, it is a minimal solution and can be > replaced by a better one after 1.3. > > Please commit it to git master. > > Regards > Stefan > > > block.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/block.c b/block.c > index 854ebd6..c05875f 100644 > --- a/block.c > +++ b/block.c > @@ -787,7 +787,8 @@ int bdrv_open(BlockDriverState *bs, const char *filename, int flags, > BlockDriver *drv) > { > int ret; > - char tmp_filename[PATH_MAX]; > + /* TODO: extra byte is a hack to ensure MAX_PATH space on Windows. */ > + char tmp_filename[PATH_MAX + 1]; > > if (flags & BDRV_O_SNAPSHOT) { > BlockDriverState *bs1; > -- > 1.7.10.4 >
diff --git a/block.c b/block.c index 854ebd6..c05875f 100644 --- a/block.c +++ b/block.c @@ -787,7 +787,8 @@ int bdrv_open(BlockDriverState *bs, const char *filename, int flags, BlockDriver *drv) { int ret; - char tmp_filename[PATH_MAX]; + /* TODO: extra byte is a hack to ensure MAX_PATH space on Windows. */ + char tmp_filename[PATH_MAX + 1]; if (flags & BDRV_O_SNAPSHOT) { BlockDriverState *bs1;
The local string tmp_filename is passed to function get_tmp_filename which expects a string with minimum size MAX_PATH for w32 hosts. MAX_PATH is 260 and PATH_MAX is 259, so tmp_filename was too short. Commit eba25057b9a5e19d10ace2bc7716667a31297169 introduced this regression. Signed-off-by: Stefan Weil <sw@weilnetz.de> --- v2: Added TODO comment as suggested by Stefan Hajnoczi. Hi Anthony, hi Blue, this fix is needed for 1.3 to avoid a fatal assertion on Windows. As discussed on qemu-devel, it is a minimal solution and can be replaced by a better one after 1.3. Please commit it to git master. Regards Stefan block.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)