We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 5db049f commit 7b54c31Copy full SHA for 7b54c31
1 file changed
src/crypto_impl.c
@@ -96,14 +96,24 @@ static void sqlcipher_mem_free(void *p) {
96
}
97
static void *sqlcipher_mem_realloc(void *p, int n) {
98
void *new = NULL;
99
+ int orig_sz = 0;
100
if(mem_security_on) {
- new = sqlcipher_mem_malloc(n);
101
- if(new == NULL) {
+ orig_sz = sqlcipher_mem_size(p);
102
+ if (n==0) {
103
+ sqlcipher_mem_free(p);
104
return NULL;
105
+ } else if (!p) {
106
+ return sqlcipher_mem_malloc(n);
107
+ } else if(n <= orig_sz) {
108
+ return p;
109
+ } else {
110
+ new = sqlcipher_mem_malloc(n);
111
+ if(new) {
112
+ memcpy(new, p, orig_sz);
113
114
+ }
115
+ return new;
116
- memcpy(new, p, n);
- sqlcipher_mem_free(p);
- return new;
117
} else {
118
return default_mem_methods.xRealloc(p, n);
119
0 commit comments