mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 04:13:28 +01:00
Merge remote-tracking branch 'rl1987/ticket26527'
This commit is contained in:
commit
a01b4d7f87
3
changes/ticket26527
Normal file
3
changes/ticket26527
Normal file
@ -0,0 +1,3 @@
|
||||
o Code simplification and refactoring:
|
||||
- Remove ATTR_NONNULL macro from codebase. Resolves
|
||||
ticket 26527.
|
@ -125,16 +125,6 @@
|
||||
#define ATTR_MALLOC __attribute__((malloc))
|
||||
#define ATTR_NORETURN __attribute__((noreturn))
|
||||
#define ATTR_WUR __attribute__((warn_unused_result))
|
||||
/* Alas, nonnull is not at present a good idea for us. We'd like to get
|
||||
* warnings when we pass NULL where we shouldn't (which nonnull does, albeit
|
||||
* spottily), but we don't want to tell the compiler to make optimizations
|
||||
* with the assumption that the argument can't be NULL (since this would make
|
||||
* many of our checks go away, and make our code less robust against
|
||||
* programming errors). Unfortunately, nonnull currently does both of these
|
||||
* things, and there's no good way to split them up.
|
||||
*
|
||||
* #define ATTR_NONNULL(x) __attribute__((nonnull x)) */
|
||||
#define ATTR_NONNULL(x)
|
||||
#define ATTR_UNUSED __attribute__ ((unused))
|
||||
|
||||
/** Macro: Evaluates to <b>exp</b> and hints the compiler that the value
|
||||
@ -158,7 +148,6 @@
|
||||
#define ATTR_CONST
|
||||
#define ATTR_MALLOC
|
||||
#define ATTR_NORETURN
|
||||
#define ATTR_NONNULL(x)
|
||||
#define ATTR_UNUSED
|
||||
#define ATTR_WUR
|
||||
#define PREDICT_LIKELY(exp) (exp)
|
||||
|
@ -35,7 +35,7 @@ typedef struct tor_mmap_t {
|
||||
|
||||
} tor_mmap_t;
|
||||
|
||||
tor_mmap_t *tor_mmap_file(const char *filename) ATTR_NONNULL((1));
|
||||
int tor_munmap_file(tor_mmap_t *handle) ATTR_NONNULL((1));
|
||||
tor_mmap_t *tor_mmap_file(const char *filename);
|
||||
int tor_munmap_file(tor_mmap_t *handle);
|
||||
|
||||
#endif
|
||||
|
@ -21,13 +21,13 @@ void *tor_malloc_zero_(size_t size) ATTR_MALLOC;
|
||||
void *tor_calloc_(size_t nmemb, size_t size) ATTR_MALLOC;
|
||||
void *tor_realloc_(void *ptr, size_t size);
|
||||
void *tor_reallocarray_(void *ptr, size_t size1, size_t size2);
|
||||
char *tor_strdup_(const char *s) ATTR_MALLOC ATTR_NONNULL((1));
|
||||
char *tor_strdup_(const char *s) ATTR_MALLOC;
|
||||
char *tor_strndup_(const char *s, size_t n)
|
||||
ATTR_MALLOC ATTR_NONNULL((1));
|
||||
ATTR_MALLOC;
|
||||
void *tor_memdup_(const void *mem, size_t len)
|
||||
ATTR_MALLOC ATTR_NONNULL((1));
|
||||
ATTR_MALLOC;
|
||||
void *tor_memdup_nulterm_(const void *mem, size_t len)
|
||||
ATTR_MALLOC ATTR_NONNULL((1));
|
||||
ATTR_MALLOC;
|
||||
void tor_free_(void *mem);
|
||||
|
||||
/** Release memory allocated by tor_malloc, tor_realloc, tor_strdup,
|
||||
|
@ -41,10 +41,10 @@ static inline int strcasecmp(const char *a, const char *b, size_t n) {
|
||||
#endif /* defined __APPLE__ */
|
||||
|
||||
#ifndef HAVE_STRLCAT
|
||||
size_t strlcat(char *dst, const char *src, size_t siz) ATTR_NONNULL((1,2));
|
||||
size_t strlcat(char *dst, const char *src, size_t siz);
|
||||
#endif
|
||||
#ifndef HAVE_STRLCPY
|
||||
size_t strlcpy(char *dst, const char *src, size_t siz) ATTR_NONNULL((1,2));
|
||||
size_t strlcpy(char *dst, const char *src, size_t siz);
|
||||
#endif
|
||||
|
||||
char *tor_strtok_r_impl(char *str, const char *sep, char **lasts);
|
||||
|
@ -13,9 +13,9 @@
|
||||
#include <stddef.h>
|
||||
|
||||
int tor_snprintf(char *str, size_t size, const char *format, ...)
|
||||
CHECK_PRINTF(3,4) ATTR_NONNULL((1,3));
|
||||
CHECK_PRINTF(3,4);
|
||||
int tor_vsnprintf(char *str, size_t size, const char *format, va_list args)
|
||||
CHECK_PRINTF(3,0) ATTR_NONNULL((1,3));
|
||||
CHECK_PRINTF(3,0);
|
||||
|
||||
int tor_asprintf(char **strp, const char *fmt, ...)
|
||||
CHECK_PRINTF(2,3);
|
||||
|
@ -12,29 +12,29 @@
|
||||
#include <stddef.h>
|
||||
|
||||
const void *tor_memmem(const void *haystack, size_t hlen, const void *needle,
|
||||
size_t nlen) ATTR_NONNULL((1,3));
|
||||
size_t nlen);
|
||||
const void *tor_memstr(const void *haystack, size_t hlen,
|
||||
const char *needle) ATTR_NONNULL((1,3));
|
||||
const char *needle);
|
||||
int tor_mem_is_zero(const char *mem, size_t len);
|
||||
int tor_digest_is_zero(const char *digest);
|
||||
int tor_digest256_is_zero(const char *digest);
|
||||
|
||||
/** Allowable characters in a hexadecimal string. */
|
||||
#define HEX_CHARACTERS "0123456789ABCDEFabcdef"
|
||||
void tor_strlower(char *s) ATTR_NONNULL((1));
|
||||
void tor_strupper(char *s) ATTR_NONNULL((1));
|
||||
int tor_strisprint(const char *s) ATTR_NONNULL((1));
|
||||
int tor_strisnonupper(const char *s) ATTR_NONNULL((1));
|
||||
void tor_strlower(char *s);
|
||||
void tor_strupper(char *s);
|
||||
int tor_strisprint(const char *s);
|
||||
int tor_strisnonupper(const char *s);
|
||||
int tor_strisspace(const char *s);
|
||||
int strcmp_opt(const char *s1, const char *s2);
|
||||
int strcmpstart(const char *s1, const char *s2) ATTR_NONNULL((1,2));
|
||||
int strcmp_len(const char *s1, const char *s2, size_t len) ATTR_NONNULL((1,2));
|
||||
int strcasecmpstart(const char *s1, const char *s2) ATTR_NONNULL((1,2));
|
||||
int strcmpend(const char *s1, const char *s2) ATTR_NONNULL((1,2));
|
||||
int strcasecmpend(const char *s1, const char *s2) ATTR_NONNULL((1,2));
|
||||
int strcmpstart(const char *s1, const char *s2);
|
||||
int strcmp_len(const char *s1, const char *s2, size_t len);
|
||||
int strcasecmpstart(const char *s1, const char *s2);
|
||||
int strcmpend(const char *s1, const char *s2);
|
||||
int strcasecmpend(const char *s1, const char *s2);
|
||||
int fast_memcmpstart(const void *mem, size_t memlen, const char *prefix);
|
||||
|
||||
void tor_strstrip(char *s, const char *strip) ATTR_NONNULL((1,2));
|
||||
void tor_strstrip(char *s, const char *strip);
|
||||
|
||||
const char *eat_whitespace(const char *s);
|
||||
const char *eat_whitespace_eos(const char *s, const char *eos);
|
||||
|
Loading…
Reference in New Issue
Block a user