Date: Sun, 19 Aug 2001 21:40:16 -0400 From: David Hill <david@phobia.ms> To: audit@freebsd.org Subject: write.c patch - WARNS=2 Message-ID: <20010819214016.298f8222.david@phobia.ms>
next in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Hello -
Here is a write.c patch.
1. Constified
2. Changed a strncpy to a strlcpy
3. Changed S_IWRITE >> 3 to S_IWGRP
4. Code cleaup (declaration and unused variable) when WARNS=2
- David
[-- Attachment #2 --]
diff -ru /usr/src/usr.bin/write.orig/Makefile /usr/src/usr.bin/write/Makefile
--- /usr/src/usr.bin/write.orig/Makefile Fri Aug 10 22:54:16 2001
+++ /usr/src/usr.bin/write/Makefile Fri Aug 10 22:54:45 2001
@@ -3,5 +3,6 @@
PROG= write
BINMODE=2555
BINGRP= tty
+WARNS?= 2
.include <bsd.prog.mk>
diff -ru /usr/src/usr.bin/write.orig/write.c /usr/src/usr.bin/write/write.c
--- /usr/src/usr.bin/write.orig/write.c Fri Aug 10 22:54:16 2001
+++ /usr/src/usr.bin/write/write.c Fri Aug 10 23:01:11 2001
@@ -64,12 +64,12 @@
#include <utmp.h>
void done __P((int));
-void do_write __P((char *, char *, uid_t));
+void do_write __P((const char *, const char *, uid_t));
static void usage __P((void));
-int term_chk __P((char *, int *, time_t *, int));
+int term_chk __P((const char *, int *, time_t *, int));
void wr_fputs __P((unsigned char *s));
-void search_utmp __P((char *, char *, char *, uid_t));
-int utmp_chk __P((char *, char *));
+void search_utmp __P((const char *, const char *, char *, uid_t));
+int utmp_chk __P((const char *, const char *));
int
main(argc, argv)
@@ -107,7 +107,7 @@
/* check args */
switch (argc) {
case 2:
- search_utmp(argv[1], tty, mytty, myuid);
+ search_utmp(argv[1], mytty, tty, myuid);
do_write(tty, mytty, myuid);
break;
case 3:
@@ -141,7 +141,7 @@
*/
int
utmp_chk(user, tty)
- char *user, *tty;
+ const char *user, *tty;
{
struct utmp u;
int ufd;
@@ -172,8 +172,9 @@
* writing from, unless that's the only terminal with messages enabled.
*/
void
-search_utmp(user, tty, mytty, myuid)
- char *user, *tty, *mytty;
+search_utmp(user, mytty, tty, myuid)
+ const char *user, *mytty;
+ char *tty;
uid_t myuid;
{
struct utmp u;
@@ -190,8 +191,7 @@
while (read(ufd, (char *) &u, sizeof(u)) == sizeof(u))
if (strncmp(user, u.ut_name, sizeof(u.ut_name)) == 0) {
++nloggedttys;
- (void)strncpy(atty, u.ut_line, UT_LINESIZE);
- atty[UT_LINESIZE] = '\0';
+ (void)strlcpy(atty, u.ut_line, UT_LINESIZE);
if (term_chk(atty, &msgsok, &atime, 0))
continue; /* bad term? skip */
if (myuid && !msgsok)
@@ -227,7 +227,7 @@
*/
int
term_chk(tty, msgsokP, atimeP, showerror)
- char *tty;
+ const char *tty;
int *msgsokP, showerror;
time_t *atimeP;
{
@@ -240,7 +240,7 @@
warn("%s", path);
return(1);
}
- *msgsokP = (s.st_mode & (S_IWRITE >> 3)) != 0; /* group write bit */
+ *msgsokP = (s.st_mode & S_IWGRP) != 0; /* group write bit */
*atimeP = s.st_atime;
return(0);
}
@@ -250,10 +250,11 @@
*/
void
do_write(tty, mytty, myuid)
- char *tty, *mytty;
+ const char *tty, *mytty;
uid_t myuid;
{
- register char *login, *nows;
+ register char const *login;
+ register char *nows;
register struct passwd *pwd;
time_t now;
char path[MAXPATHLEN], host[MAXHOSTNAMELEN], line[512];
@@ -293,6 +294,7 @@
done(n)
int n; /* signal number */
{
+ n = 0;
(void)printf("EOF\r\n");
exit(0);
}
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010819214016.298f8222.david>
