Hi Michael,

> diff --git a/source3/smbd/process.c b/source3/smbd/process.c
> index 7605ad7..0f3e560 100644
> --- a/source3/smbd/process.c
> +++ b/source3/smbd/process.c
> @@ -1887,8 +1887,15 @@ received when we should release a specific IP
>  static void release_ip(const char *ip, void *priv)
>  {
>       char addr[INET6_ADDRSTRLEN];
> +     char *p;
this should be p = addr or p = NULL;

> -     if (strcmp(client_socket_addr(get_client_fd(),addr,sizeof(addr)), ip) 
> == 0) {
> +     client_socket_addr(get_client_fd(),addr,sizeof(addr));
> +
> +     if (strncmp("::ffff:", addr, 7) == 0) {
> +             p = addr + 7;
> +     }
>
> +     if ((strcmp(p, ip) == 0) || (strcmp(addr, ip) == 0)) {

if p could be NULL based on the decision above we need to check this
before passing p to strcmp().

metze

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to