Export to GitHub

grub4dos-chenall - issue #186

<= and >= only works for numbers below 2GB (31-bits)


Posted on Jul 4, 2014 by Happy Kangaroo

What steps will reproduce the problem? 1. cat --length=0 /3.7GB.iso 2. set L=%@retval% if %L%<=500002817 echo fred

What is the expected output? What do you see instead?

This outputs fred as it thinks L is negative number.

L = 3267639296

if 3267639296 <= 500002817 echo fred if 0xFFFFFFFFC2C43800 <= 0x1DCD7001 echo fred

--> fred

i.e. <= is using signed 32-bit so only 31-bit integers possible

What version of the product are you using? On what operating system?

Please provide any additional information below.

Really need 64-bit signed compare??

Comment #1

Posted on Aug 12, 2014 by Happy Hippo

thanks report. this is a bug,will fix next version.

Comment #2

Posted on Aug 12, 2014 by Happy Hippo

(No comment was entered for this change.)

Status: Fixed

Labels:
Type-Defect Priority-Medium