mirror of
https://github.com/radareorg/radare2.git
synced 2024-10-08 02:53:29 +00:00
Fix #8228 - Just use r_str_ncpy
This commit is contained in:
parent
7867eaecc1
commit
3acd623664
@ -1306,6 +1306,7 @@ struct section_t* MACH0_(get_sections)(struct MACH0_(obj_t)* bin) {
|
||||
sections[i].align = 4096;
|
||||
sections[i].flags = seg->flags;
|
||||
r_str_ncpy (sectname, seg->segname, sizeof (sectname) - 1);
|
||||
r_str_filter (sectname, -1);
|
||||
// hack to support multiple sections with same name
|
||||
sections[i].srwx = prot2perm (seg->initprot);
|
||||
sections[i].last = 0;
|
||||
@ -1331,6 +1332,7 @@ struct section_t* MACH0_(get_sections)(struct MACH0_(obj_t)* bin) {
|
||||
sections[i].align = bin->sects[i].align;
|
||||
sections[i].flags = bin->sects[i].flags;
|
||||
r_str_ncpy (sectname, bin->sects[i].sectname, sizeof (sectname) - 1);
|
||||
r_str_filter (sectname, -1);
|
||||
// hack to support multiple sections with same name
|
||||
// snprintf (segname, sizeof (segname), "%d", i); // wtf
|
||||
snprintf (segname, sizeof (segname), "%d.%s", i, bin->sects[i].segname);
|
||||
@ -1535,7 +1537,8 @@ struct symbol_t* MACH0_(get_symbols)(struct MACH0_(obj_t)* bin) {
|
||||
if (!symstr_dup) {
|
||||
symbols[j].name[0] = 0;
|
||||
} else {
|
||||
strncpy (symbols[j].name, symstr_dup, R_BIN_MACH0_STRING_LENGTH-1);
|
||||
r_str_ncpy (symbols[j].name, symstr_dup, R_BIN_MACH0_STRING_LENGTH - 1);
|
||||
r_str_filter (symbols[j].name, -1);
|
||||
symbols[j].name[R_BIN_MACH0_STRING_LENGTH - 2] = 0;
|
||||
}
|
||||
free (symstr_dup);
|
||||
@ -1690,7 +1693,8 @@ struct import_t* MACH0_(get_imports)(struct MACH0_(obj_t)* bin) {
|
||||
}
|
||||
symstr_dup = r_str_ndup (symstr, len);
|
||||
if (symstr_dup) {
|
||||
strncpy (imports[j].name, symstr_dup, R_BIN_MACH0_STRING_LENGTH - 1);
|
||||
r_str_ncpy (imports[j].name, symstr_dup, R_BIN_MACH0_STRING_LENGTH - 1);
|
||||
r_str_filter (imports[j].name, - 1);
|
||||
imports[j].name[R_BIN_MACH0_STRING_LENGTH - 2] = 0;
|
||||
free (symstr_dup);
|
||||
}
|
||||
|
@ -50,12 +50,6 @@ static void my_io_redirect (RIO *io, const char *ref, const char *file) {
|
||||
#include <mach-o/nlist.h>
|
||||
#endif
|
||||
|
||||
#if __APPLE__ || __BSD__
|
||||
static void inferior_abort_handler(int pid) {
|
||||
eprintf ("Inferior received signal SIGABRT. Executing BKPT.\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Creates a new process and returns the result:
|
||||
* -1 : error
|
||||
@ -186,7 +180,13 @@ err_fork:
|
||||
}
|
||||
#else // windows
|
||||
|
||||
#if 0
|
||||
#if (__APPLE__ && __POWERPC__) || !__APPLE__
|
||||
#if __APPLE__ || __BSD__
|
||||
static void inferior_abort_handler(int pid) {
|
||||
eprintf ("Inferior received signal SIGABRT. Executing BKPT.\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
// UNUSED
|
||||
static void trace_me () {
|
||||
#if __APPLE__
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* radare - LGPL - Copyright 2007-2016 - pancake */
|
||||
/* radare - LGPL - Copyright 2007-2017 - pancake */
|
||||
|
||||
#include "r_types.h"
|
||||
#include "r_util.h"
|
||||
@ -797,12 +797,11 @@ R_API char *r_str_trim_head_tail(char *str) {
|
||||
return r_str_trim_tail (r_str_trim_head (str));
|
||||
}
|
||||
|
||||
// Copy all printable characters from src to dst, copy all printable characters
|
||||
// as '.'.
|
||||
// Secure string copy with null terminator (like strlcpy or strscpy but ours
|
||||
R_API void r_str_ncpy(char *dst, const char *src, int n) {
|
||||
int i;
|
||||
for (i = 0; src[i] && n > 0; i++, n--) {
|
||||
dst[i] = IS_PRINTABLE (src[i])? src[i]: '.';
|
||||
dst[i] = src[i];
|
||||
}
|
||||
dst[i] = 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user