From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1k0tzN-0002i8-Uq for mharc-grub-devel@gnu.org; Wed, 29 Jul 2020 17:51:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50668) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k0tzJ-0002gj-Uc for grub-devel@gnu.org; Wed, 29 Jul 2020 17:51:49 -0400 Received: from mail-qt1-x843.google.com ([2607:f8b0:4864:20::843]:45075) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1k0tzI-0006Iy-0v for grub-devel@gnu.org; Wed, 29 Jul 2020 17:51:49 -0400 Received: by mail-qt1-x843.google.com with SMTP id s23so18835747qtq.12 for ; Wed, 29 Jul 2020 14:51:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=efficientek-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=g3wxuNltvDS/oMv6eZNTshruUYusI1DF9+wpUf3qtTY=; b=C25pTpo46VVKvfcNHM4K1JdjgcmZXSIuYYpLn6Pn6DXf3S/czXtJDNVsyNImV8kwHq fKNVa67tXJljlql9OBjqxCe6457SwkO6IH3U9+4PBgploH4qPy9kD/gw43RqkjuxO+Z+ SIWjLQ/sgqVGPwu9W9oxLeYfTvgk9LxbJvu7ftFQAcp37s13uYHh/E1L5vF+2rN8njwt qMyq/7u7cri63/CYrJotYV2DJUvwexTjIHA7hOGo52zk78L9vVRN4GmIaCTONrDKW764 UyxUTc1BCvLKaAnoQVc2fUbvATpuwvy31Oz/oZmrWUi94/VwXMzTKogadx+SKHWJ141a xKnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=g3wxuNltvDS/oMv6eZNTshruUYusI1DF9+wpUf3qtTY=; b=tgKLGSARbja/9fJNZLiD4Y9JXGLXoC0HbNdMGGDd3S7oMyYYXW66yxf0uTtmrog2o6 S2oYMvC4ifETQO+QHTJICMi7f90MbKt1LL6tQmTE85OebjwbKia9vcNNVE8aXr0i1fCf YMzW7FMdmhzvGy8Dv1nFN+tVTMSfpXyy8IiiDXJxq9OAkh9hYRXLIyGu7PlcQwtd/1uh jXn966dQgIi43GZEdHB0n4AeZnCOhAoARnnLGul5wmqOWya2w56nxLaXMi+nUDvLUbZu ZlboM75jJReNdomKwgylTWCGr5PV6CVGGJI/jndbniMJW1su64VcfYdm9g8E3D39vmy/ 3OHA== X-Gm-Message-State: AOAM531ywWPmpkzG6PEgmudvVwhFHr5KKo2AbRmUnqPiO3noz5kmq1YD 4xKUf6zAR/Y9GsAv11py0U3MQ1BMUOyAGA== X-Google-Smtp-Source: ABdhPJz9ok2zO9yOX6Jf9+VkeHVc3P44ylM9uDTqu06gRxZqs3v32S0utfXZ/VUj3LyBeqUdPb8FgA== X-Received: by 2002:ac8:6c5d:: with SMTP id z29mr28684qtu.244.1596059507033; Wed, 29 Jul 2020 14:51:47 -0700 (PDT) Received: from localhost.localdomain ([189.216.105.24]) by smtp.gmail.com with ESMTPSA id n127sm2804165qke.29.2020.07.29.14.51.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Jul 2020 14:51:46 -0700 (PDT) From: development@efficientek.com To: grub-devel@gnu.org Cc: Glenn Washburn , Daniel Kiper , Patrick Steinhardt Subject: [PATCH 03/17] cryptodisk: Incorrect calculation of start sector for grub_disk_read in grub_cryptodisk_read. Date: Wed, 29 Jul 2020 16:50:08 -0500 Message-Id: <87e472bcc95950cacefcf9ca60b1ae192d65b748.1596056714.git.development@efficientek.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=2607:f8b0:4864:20::843; envelope-from=development@efficientek.com; helo=mail-qt1-x843.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Jul 2020 21:51:50 -0000 From: Glenn Washburn Here dev is a grub_cryptodisk_t and dev->offset is offset in sectors of size native to the cryptodisk device. The sector is correctly transformed into native grub sector size, but then added to dev->offset which is not transformed. It would be nice if the type system would help us with this. Signed-off-by: Glenn Washburn --- grub-core/disk/cryptodisk.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grub-core/disk/cryptodisk.c b/grub-core/disk/cryptodisk.c index d8f66e9ef..2791a4870 100644 --- a/grub-core/disk/cryptodisk.c +++ b/grub-core/disk/cryptodisk.c @@ -757,8 +757,8 @@ grub_cryptodisk_read (grub_disk_t disk, grub_disk_addr_t sector, size, sector, dev->offset); err = grub_disk_read (dev->source_disk, - (sector << (disk->log_sector_size - - GRUB_DISK_SECTOR_BITS)) + dev->offset, 0, + ((sector + dev->offset) << (disk->log_sector_size + - GRUB_DISK_SECTOR_BITS)), 0, size << disk->log_sector_size, buf); if (err) { -- 2.25.1