csanchezdll commented on code in PR #3059:
URL: https://github.com/apache/nuttx-apps/pull/3059#discussion_r2046705164
##########
canutils/slcan/slcan.c:
##########
@@ -137,8 +137,7 @@ static int caninit(char *candev, int *s, struct
sockaddr_can *addr,
syslog(LOG_ERR, "Error opening CAN socket\n");
return -1;
}
- strncpy(ifr.ifr_name, candev, 4);
- ifr.ifr_name[4] = '\0';
+ strlcpy(ifr.ifr_name, candev, IFNAMSIZ);
Review Comment:
This was here on my first version of the PR, with the original strncpy.
Changing to strlcpy and removing the explicit \0 addition was suggested by
@xiaoxiang781216 just above
https://github.com/apache/nuttx-apps/pull/3059#discussion_r2045139275.
I agree with him, strlcpy is safer, as it is guaranteed to add a \0 (strncpy
will only *copy* the original \0 if it fits in the buffer). Therefore, the
explicit \0 is no longer needed.
##########
canutils/slcan/slcan.c:
##########
@@ -316,9 +316,22 @@ int main(int argc, char *argv[])
{
/* open CAN interface */
- mode = 1;
- debug_print("Open interface\n");
- ok_return(fd);
+ struct ifreq ifr;
+
+ strlcpy(ifr.ifr_name, argv[1], IFNAMSIZ);
+
Review Comment:
Same here, strlcpy is garanteed to ad \0 even if the string source of the
copy is longer than the destination buffer.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]