]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
vbe: Fix incorrect register usage.
authorVladimir Serbinenko <phcoder@gmail.com>
Mon, 26 Jan 2015 08:53:39 +0000 (09:53 +0100)
committerVladimir Serbinenko <phcoder@gmail.com>
Mon, 26 Jan 2015 08:53:39 +0000 (09:53 +0100)
Found by: Coverity scan.

grub-core/video/i386/pc/vbe.c

index 62b5c22451348314d5e1e31de3ad24f859ddf981..07a614a2010b465eb112c869f8b3ab6b48f2722d 100644 (file)
@@ -304,8 +304,7 @@ grub_vbe_bios_getset_dac_palette_width (int set, int *dac_mask_size)
   struct grub_bios_int_registers regs;
 
   regs.eax = 0x4f08;
-  regs.ebx = (*dac_mask_size & 0xff) >> 8;
-  regs.ebx = set ? 1 : 0;
+  regs.ebx = ((*dac_mask_size & 0xff) << 8) | (set ? 1 : 0);
   regs.flags = GRUB_CPU_INT_FLAGS_DEFAULT;
   grub_bios_interrupt (0x10, &regs);
   *dac_mask_size = (regs.ebx >> 8) & 0xff;