Skip to content

Commit

Permalink
Merge pull request #9191 from idryzhov/rip-auth
Browse files Browse the repository at this point in the history
ripd: fix authentication key length
  • Loading branch information
riw777 authored Aug 3, 2021
2 parents 11093fc + b5b4f44 commit cdc549b
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions ripd/ripd.c
Original file line number Diff line number Diff line change
Expand Up @@ -920,9 +920,11 @@ static int rip_auth_md5(struct rip_packet *packet, struct sockaddr_in *from,
if (key == NULL || key->string == NULL)
return 0;

strlcpy(auth_str, key->string, sizeof(auth_str));
memcpy(auth_str, key->string,
MIN(sizeof(auth_str), strlen(key->string)));
} else if (ri->auth_str)
strlcpy(auth_str, ri->auth_str, sizeof(auth_str));
memcpy(auth_str, ri->auth_str,
MIN(sizeof(auth_str), strlen(ri->auth_str)));

if (auth_str[0] == 0)
return 0;
Expand Down Expand Up @@ -965,9 +967,11 @@ static void rip_auth_prepare_str_send(struct rip_interface *ri, struct key *key,

memset(auth_str, 0, len);
if (key && key->string)
strlcpy(auth_str, key->string, len);
memcpy(auth_str, key->string,
MIN((size_t)len, strlen(key->string)));
else if (ri->auth_str)
strlcpy(auth_str, ri->auth_str, len);
memcpy(auth_str, ri->auth_str,
MIN((size_t)len, strlen(ri->auth_str)));

return;
}
Expand Down

0 comments on commit cdc549b

Please sign in to comment.