mach-o: remove name_len field.
bfd/ * mach-o.h (bfd_mach_o_dylinker_command) (bfd_mach_o_dylib_command, bfd_mach_o_fvmlib_command): Remove name_len field. * mach-o.c (bfd_mach_o_read_dylinker, bfd_mach_o_read_dylib) (bfd_mach_o_read_fvmlib): Adjust after name_len removal.
This commit is contained in:
parent
51d481464e
commit
4525c51ab0
@ -1,3 +1,11 @@
|
|||||||
|
2014-04-18 Tristan Gingold <gingold@adacore.com>
|
||||||
|
|
||||||
|
* mach-o.h (bfd_mach_o_dylinker_command)
|
||||||
|
(bfd_mach_o_dylib_command, bfd_mach_o_fvmlib_command): Remove
|
||||||
|
name_len field.
|
||||||
|
* mach-o.c (bfd_mach_o_read_dylinker, bfd_mach_o_read_dylib)
|
||||||
|
(bfd_mach_o_read_fvmlib): Adjust after name_len removal.
|
||||||
|
|
||||||
2014-04-18 Tristan Gingold <gingold@adacore.com>
|
2014-04-18 Tristan Gingold <gingold@adacore.com>
|
||||||
|
|
||||||
* mach-o.h (bfd_mach_o_backend_data): Add page_size field.
|
* mach-o.h (bfd_mach_o_backend_data): Add page_size field.
|
||||||
|
26
bfd/mach-o.c
26
bfd/mach-o.c
@ -3155,6 +3155,7 @@ bfd_mach_o_read_dylinker (bfd *abfd, bfd_mach_o_load_command *command)
|
|||||||
bfd_mach_o_dylinker_command *cmd = &command->command.dylinker;
|
bfd_mach_o_dylinker_command *cmd = &command->command.dylinker;
|
||||||
struct mach_o_str_command_external raw;
|
struct mach_o_str_command_external raw;
|
||||||
unsigned int nameoff;
|
unsigned int nameoff;
|
||||||
|
unsigned int namelen;
|
||||||
|
|
||||||
if (bfd_seek (abfd, command->offset + BFD_MACH_O_LC_SIZE, SEEK_SET) != 0
|
if (bfd_seek (abfd, command->offset + BFD_MACH_O_LC_SIZE, SEEK_SET) != 0
|
||||||
|| bfd_bread (&raw, sizeof (raw), abfd) != sizeof (raw))
|
|| bfd_bread (&raw, sizeof (raw), abfd) != sizeof (raw))
|
||||||
@ -3162,13 +3163,14 @@ bfd_mach_o_read_dylinker (bfd *abfd, bfd_mach_o_load_command *command)
|
|||||||
|
|
||||||
nameoff = bfd_h_get_32 (abfd, raw.str);
|
nameoff = bfd_h_get_32 (abfd, raw.str);
|
||||||
|
|
||||||
cmd->name_offset = command->offset + nameoff;
|
cmd->name_offset = nameoff;
|
||||||
cmd->name_len = command->len - nameoff;
|
namelen = command->len - nameoff;
|
||||||
cmd->name_str = bfd_alloc (abfd, cmd->name_len);
|
nameoff += command->offset;
|
||||||
|
cmd->name_str = bfd_alloc (abfd, namelen);
|
||||||
if (cmd->name_str == NULL)
|
if (cmd->name_str == NULL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
if (bfd_seek (abfd, cmd->name_offset, SEEK_SET) != 0
|
if (bfd_seek (abfd, nameoff, SEEK_SET) != 0
|
||||||
|| bfd_bread (cmd->name_str, cmd->name_len, abfd) != cmd->name_len)
|
|| bfd_bread (cmd->name_str, namelen, abfd) != namelen)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -3179,6 +3181,7 @@ bfd_mach_o_read_dylib (bfd *abfd, bfd_mach_o_load_command *command)
|
|||||||
bfd_mach_o_dylib_command *cmd = &command->command.dylib;
|
bfd_mach_o_dylib_command *cmd = &command->command.dylib;
|
||||||
struct mach_o_dylib_command_external raw;
|
struct mach_o_dylib_command_external raw;
|
||||||
unsigned int nameoff;
|
unsigned int nameoff;
|
||||||
|
unsigned int namelen;
|
||||||
|
|
||||||
switch (command->type)
|
switch (command->type)
|
||||||
{
|
{
|
||||||
@ -3204,12 +3207,12 @@ bfd_mach_o_read_dylib (bfd *abfd, bfd_mach_o_load_command *command)
|
|||||||
cmd->compatibility_version = bfd_h_get_32 (abfd, raw.compatibility_version);
|
cmd->compatibility_version = bfd_h_get_32 (abfd, raw.compatibility_version);
|
||||||
|
|
||||||
cmd->name_offset = command->offset + nameoff;
|
cmd->name_offset = command->offset + nameoff;
|
||||||
cmd->name_len = command->len - nameoff;
|
namelen = command->len - nameoff;
|
||||||
cmd->name_str = bfd_alloc (abfd, cmd->name_len);
|
cmd->name_str = bfd_alloc (abfd, namelen);
|
||||||
if (cmd->name_str == NULL)
|
if (cmd->name_str == NULL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
if (bfd_seek (abfd, cmd->name_offset, SEEK_SET) != 0
|
if (bfd_seek (abfd, cmd->name_offset, SEEK_SET) != 0
|
||||||
|| bfd_bread (cmd->name_str, cmd->name_len, abfd) != cmd->name_len)
|
|| bfd_bread (cmd->name_str, namelen, abfd) != namelen)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -3287,6 +3290,7 @@ bfd_mach_o_read_fvmlib (bfd *abfd, bfd_mach_o_load_command *command)
|
|||||||
bfd_mach_o_fvmlib_command *fvm = &command->command.fvmlib;
|
bfd_mach_o_fvmlib_command *fvm = &command->command.fvmlib;
|
||||||
struct mach_o_fvmlib_command_external raw;
|
struct mach_o_fvmlib_command_external raw;
|
||||||
unsigned int nameoff;
|
unsigned int nameoff;
|
||||||
|
unsigned int namelen;
|
||||||
|
|
||||||
if (bfd_seek (abfd, command->offset + BFD_MACH_O_LC_SIZE, SEEK_SET) != 0
|
if (bfd_seek (abfd, command->offset + BFD_MACH_O_LC_SIZE, SEEK_SET) != 0
|
||||||
|| bfd_bread (&raw, sizeof (raw), abfd) != sizeof (raw))
|
|| bfd_bread (&raw, sizeof (raw), abfd) != sizeof (raw))
|
||||||
@ -3297,12 +3301,12 @@ bfd_mach_o_read_fvmlib (bfd *abfd, bfd_mach_o_load_command *command)
|
|||||||
fvm->header_addr = bfd_h_get_32 (abfd, raw.header_addr);
|
fvm->header_addr = bfd_h_get_32 (abfd, raw.header_addr);
|
||||||
|
|
||||||
fvm->name_offset = command->offset + nameoff;
|
fvm->name_offset = command->offset + nameoff;
|
||||||
fvm->name_len = command->len - nameoff;
|
namelen = command->len - nameoff;
|
||||||
fvm->name_str = bfd_alloc (abfd, fvm->name_len);
|
fvm->name_str = bfd_alloc (abfd, namelen);
|
||||||
if (fvm->name_str == NULL)
|
if (fvm->name_str == NULL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
if (bfd_seek (abfd, fvm->name_offset, SEEK_SET) != 0
|
if (bfd_seek (abfd, fvm->name_offset, SEEK_SET) != 0
|
||||||
|| bfd_bread (fvm->name_str, fvm->name_len, abfd) != fvm->name_len)
|
|| bfd_bread (fvm->name_str, namelen, abfd) != namelen)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -418,8 +418,7 @@ bfd_mach_o_thread_command;
|
|||||||
|
|
||||||
typedef struct bfd_mach_o_dylinker_command
|
typedef struct bfd_mach_o_dylinker_command
|
||||||
{
|
{
|
||||||
unsigned long name_offset; /* Offset to library's path name. */
|
unsigned int name_offset; /* Offset to library's path name. */
|
||||||
unsigned long name_len; /* Offset to library's path name. */
|
|
||||||
char *name_str;
|
char *name_str;
|
||||||
}
|
}
|
||||||
bfd_mach_o_dylinker_command;
|
bfd_mach_o_dylinker_command;
|
||||||
@ -429,8 +428,7 @@ bfd_mach_o_dylinker_command;
|
|||||||
|
|
||||||
typedef struct bfd_mach_o_dylib_command
|
typedef struct bfd_mach_o_dylib_command
|
||||||
{
|
{
|
||||||
unsigned long name_offset; /* Offset to library's path name. */
|
unsigned int name_offset; /* Offset to library's path name. */
|
||||||
unsigned long name_len; /* Offset to library's path name. */
|
|
||||||
unsigned long timestamp; /* Library's build time stamp. */
|
unsigned long timestamp; /* Library's build time stamp. */
|
||||||
unsigned long current_version; /* Library's current version number. */
|
unsigned long current_version; /* Library's current version number. */
|
||||||
unsigned long compatibility_version; /* Library's compatibility vers number. */
|
unsigned long compatibility_version; /* Library's compatibility vers number. */
|
||||||
@ -479,7 +477,6 @@ bfd_mach_o_str_command;
|
|||||||
typedef struct bfd_mach_o_fvmlib_command
|
typedef struct bfd_mach_o_fvmlib_command
|
||||||
{
|
{
|
||||||
unsigned int name_offset;
|
unsigned int name_offset;
|
||||||
unsigned int name_len;
|
|
||||||
char *name_str;
|
char *name_str;
|
||||||
unsigned int minor_version;
|
unsigned int minor_version;
|
||||||
unsigned int header_addr;
|
unsigned int header_addr;
|
||||||
|
Loading…
Reference in New Issue
Block a user