X-Git-Url: https://git.efficios.com/?a=blobdiff_plain;f=ld%2Fldbuildid.c;h=0642ec07aa94a30b870c43544cf1b59a938d689b;hb=refs%2Fheads%2Fvfork-fixes-2021-10-28;hp=55ff3bed84d1b09575a5a93deb61a2ce6c24cab0;hpb=827041555ac443bd57340060f3e034fd7b199dd8;p=deliverable%2Fbinutils-gdb.git diff --git a/ld/ldbuildid.c b/ld/ldbuildid.c index 55ff3bed84..0642ec07aa 100644 --- a/ld/ldbuildid.c +++ b/ld/ldbuildid.c @@ -1,5 +1,5 @@ /* ldbuildid.c - Build Id support routines - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2021 Free Software Foundation, Inc. This file is part of the GNU Binutils. @@ -30,16 +30,15 @@ #endif #define streq(a,b) strcmp ((a), (b)) == 0 -#define strneq(a,b,n) strncmp ((a), (b), (n)) == 0 -bfd_boolean +bool validate_build_id_style (const char *style) { if ((streq (style, "md5")) || (streq (style, "sha1")) - || (streq (style, "uuid")) || (strneq (style, "0x", 2))) - return TRUE; + || (streq (style, "uuid")) || (startswith (style, "0x"))) + return true; - return FALSE; + return false; } bfd_size_type @@ -51,7 +50,7 @@ compute_build_id_size (const char *style) if (streq (style, "sha1")) return 160 / 8; - if (strneq (style, "0x", 2)) + if (startswith (style, "0x")) { bfd_size_type size = 0; /* ID is in string form (hex). Count the bytes. */ @@ -94,7 +93,7 @@ read_hex (const char xdigit) return 0; } -bfd_boolean +bool generate_build_id (bfd *abfd, const char *style, checksum_fn checksum_contents, @@ -107,7 +106,7 @@ generate_build_id (bfd *abfd, md5_init_ctx (&ctx); if (!(*checksum_contents) (abfd, (sum_fn) &md5_process_bytes, &ctx)) - return FALSE; + return false; md5_finish_ctx (&ctx, id_bits); } else if (streq (style, "sha1")) @@ -116,7 +115,7 @@ generate_build_id (bfd *abfd, sha1_init_ctx (&ctx); if (!(*checksum_contents) (abfd, (sum_fn) &sha1_process_bytes, &ctx)) - return FALSE; + return false; sha1_finish_ctx (&ctx, id_bits); } else if (streq (style, "uuid")) @@ -126,11 +125,11 @@ generate_build_id (bfd *abfd, int fd = open ("/dev/urandom", O_RDONLY); if (fd < 0) - return FALSE; + return false; n = read (fd, id_bits, size); close (fd); if (n < size) - return FALSE; + return false; #else /* __MINGW32__ */ typedef RPC_STATUS (RPC_ENTRY * UuidCreateFn) (UUID *); UUID uuid; @@ -138,25 +137,25 @@ generate_build_id (bfd *abfd, HMODULE rpc_library = LoadLibrary ("rpcrt4.dll"); if (!rpc_library) - return FALSE; - uuid_create = (UuidCreateFn) GetProcAddress (rpc_library, "UuidCreate"); + return false; + uuid_create = (UuidCreateFn) (void (WINAPI *)(void)) GetProcAddress (rpc_library, "UuidCreate"); if (!uuid_create) { FreeLibrary (rpc_library); - return FALSE; + return false; } if (uuid_create (&uuid) != RPC_S_OK) { FreeLibrary (rpc_library); - return FALSE; + return false; } FreeLibrary (rpc_library); memcpy (id_bits, &uuid, (size_t) size < sizeof (UUID) ? (size_t) size : sizeof (UUID)); #endif /* __MINGW32__ */ } - else if (strneq (style, "0x", 2)) + else if (startswith (style, "0x")) { /* ID is in string form (hex). Convert to bits. */ const char *id = style + 2; @@ -179,5 +178,5 @@ generate_build_id (bfd *abfd, else abort (); /* Should have been validated earlier. */ - return TRUE; + return true; }