From 7e926d1d86d090986096c887a61b9bdeb1d7b8b1 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 30 Oct 2018 09:29:30 -0700 Subject: [PATCH] raco exe: fix alignment in PE resource writer --- racket/collects/compiler/private/pe-rsrc.rkt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/racket/collects/compiler/private/pe-rsrc.rkt b/racket/collects/compiler/private/pe-rsrc.rkt index 9335c9665d..b46f4559e9 100644 --- a/racket/collects/compiler/private/pe-rsrc.rkt +++ b/racket/collects/compiler/private/pe-rsrc.rkt @@ -323,12 +323,13 @@ (for/fold ([data-pos data-start]) ([e (in-list entries)]) (cond [(resource? e) - (define len (align-data-size (bytes-length (resource-content e)))) + (define len (bytes-length (resource-content e))) + (define a-len (align-data-size len)) (integer->dword (+ data-pos virtual-addr) p) (integer->dword len p) (integer->dword (resource-codepage e) p) (integer->dword 0 p) - (+ data-pos len)] + (+ data-pos a-len)] [else data-pos])) @@ -389,9 +390,9 @@ (define (same-alignment orig new) (cond - [(bitwise-bit-set? orig 1) + [(bitwise-bit-set? orig 0) new] - [(bitwise-bit-set? new 1) + [(bitwise-bit-set? new 0) (same-alignment orig (add1 new))] [else (arithmetic-shift (same-alignment