From 0a308f64e982673b88b06de76469a0ed5f6b1f77 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Fri, 4 May 2012 10:52:26 +0200 Subject: [PATCH] * grub-core/fs/bfs.c (bfs_strcmp) [MODE_AFS]: Use signed comparison. --- ChangeLog | 4 ++++ grub-core/fs/bfs.c | 9 ++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 3d2f9b098..4cfd49245 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2012-05-04 Vladimir Serbinenko + + * grub-core/fs/bfs.c (bfs_strcmp) [MODE_AFS]: Use signed comparison. + 2012-05-04 Samuel Thibault * util/getroot.c (find_hurd_root_device): Try to make error message diff --git a/grub-core/fs/bfs.c b/grub-core/fs/bfs.c index ead4dfac4..f050bc98e 100644 --- a/grub-core/fs/bfs.c +++ b/grub-core/fs/bfs.c @@ -519,10 +519,17 @@ bfs_strcmp (const char *a, const char *b, grub_size_t alen) alen--; } +#ifdef MODE_AFS if (!alen) - return - (int) (grub_uint8_t) *b; + return - (int) (grub_int8_t) *b; + + return (int) (grub_int8_t) *a - (int) (grub_int8_t) *b; +#else + if (!alen) + return - (int) (grub_uint8_t) *b; return (int) (grub_uint8_t) *a - (int) (grub_uint8_t) *b; +#endif } static grub_err_t