mirror of
https://github.com/jorisvink/kore
synced 2025-03-09 20:49:01 -04:00
Merge pull request #118 from wtfuzz/master
cast difference between pointers as unsigned in kore_mem_find()
This commit is contained in:
commit
be28c77c6d
@ -514,7 +514,7 @@ int kore_snprintf(char *, size_t, int *, const char *, ...);
|
||||
long long kore_strtonum(const char *, int, long long, long long, int *);
|
||||
int kore_base64_encode(u_int8_t *, u_int32_t, char **);
|
||||
int kore_base64_decode(char *, u_int8_t **, u_int32_t *);
|
||||
void *kore_mem_find(void *, size_t, void *, u_int32_t);
|
||||
void *kore_mem_find(void *, size_t, void *, size_t);
|
||||
char *kore_text_trim(char *, size_t);
|
||||
char *kore_read_line(FILE *, char *, size_t);
|
||||
|
||||
|
15
src/utils.c
15
src/utils.c
@ -482,20 +482,19 @@ kore_base64_decode(char *in, u_int8_t **out, u_int32_t *olen)
|
||||
}
|
||||
|
||||
void *
|
||||
kore_mem_find(void *src, size_t slen, void *needle, u_int32_t len)
|
||||
kore_mem_find(void *src, size_t slen, void *needle, size_t len)
|
||||
{
|
||||
u_int8_t *p, *end;
|
||||
size_t pos;
|
||||
|
||||
end = (u_int8_t *)src + slen;
|
||||
for (p = src; p < end; p++) {
|
||||
if (*p != *(u_int8_t *)needle)
|
||||
for(pos = 0; pos < slen; pos++) {
|
||||
if ( *((u_int8_t *)src + pos) != *(u_int8_t *)needle)
|
||||
continue;
|
||||
|
||||
if ((end - p) < len)
|
||||
if ((slen - pos) < len)
|
||||
return (NULL);
|
||||
|
||||
if (!memcmp(p, needle, len))
|
||||
return (p);
|
||||
if (!memcmp((u_int8_t *)src + pos, needle, len))
|
||||
return ((u_int8_t *)src + pos);
|
||||
}
|
||||
|
||||
return (NULL);
|
||||
|
Loading…
x
Reference in New Issue
Block a user