Pārlūkot izejas kodu

[Minor] Add rspamd_null_safe_copy routine

tags/1.9.0
Vsevolod Stakhov pirms 5 gadiem
vecāks
revīzija
11034d766c
2 mainītis faili ar 38 papildinājumiem un 0 dzēšanām
  1. 26
    0
      src/libutil/str_util.c
  2. 12
    0
      src/libutil/str_util.h

+ 26
- 0
src/libutil/str_util.c Parādīt failu

@@ -391,6 +391,32 @@ rspamd_strlcpy_fast (gchar *dst, const gchar *src, gsize siz)
return (d - dst);
}

gsize
rspamd_null_safe_copy (const gchar *src, gsize srclen,
gchar *dest, gsize destlen)
{
gsize copied = 0, si = 0, di = 0;

if (destlen == 0) {
return 0;
}

while (si < srclen && di + 1 < destlen) {
if (src[si] != '\0') {
dest[di++] = src[si++];
copied ++;
}
else {
si ++;
}
}

dest[di] = '\0';

return copied;
}


size_t
rspamd_strlcpy_safe (gchar *dst, const gchar *src, gsize siz)
{

+ 12
- 0
src/libutil/str_util.h Parādīt failu

@@ -89,6 +89,18 @@ gsize rspamd_strlcpy_safe (gchar *dst, const gchar *src, gsize siz);
# define rspamd_strlcpy rspamd_strlcpy_fast
#endif

/**
* Copies `srclen` characters from `src` to `dst` ignoring \0
* @param src
* @param srclen
* @param dest
* @param destlen
* @return number of bytes copied
*/
gsize
rspamd_null_safe_copy (const gchar *src, gsize srclen,
gchar *dest, gsize destlen);

/*
* Try to convert string of length to long
*/

Notiek ielāde…
Atcelt
Saglabāt