$OpenBSD: patch-transcript_c,v 1.3 2007/04/01 07:08:39 steven Exp $
--- transcript.c.orig	Thu Jan 20 23:44:35 2005
+++ transcript.c	Sun Apr  1 08:18:32 2007
@@ -105,7 +105,7 @@ transcript_parse( struct transcript *tran ) 
 	exit( 2 );
     }
 
-    strcpy( tran->t_pinfo.pi_name, epath );
+    (void)strlcpy( tran->t_pinfo.pi_name, epath, sizeof( tran->t_pinfo.pi_name ) );
 
     /* reading and parsing the line */
     switch( *argv[ 0 ] ) {
@@ -175,7 +175,7 @@ transcript_parse( struct transcript *tran ) 
 		tran->t_fullname, tran->t_linenum );
 	    exit( 2 );
 	}
-	strcpy( tran->t_pinfo.pi_link, epath );
+	(void)strlcpy( tran->t_pinfo.pi_link, epath, sizeof( tran->t_pinfo.pi_link ) );
 	break;
 
     case 'a':				    /* hfs applefile */
@@ -197,7 +197,7 @@ transcript_parse( struct transcript *tran ) 
 		exit( 2 );
 	    }
 	}
-	strcpy( tran->t_pinfo.pi_cksum_b64, argv[ 7 ] );
+	(void)strlcpy( tran->t_pinfo.pi_cksum_b64, argv[ 7 ], sizeof( tran->t_pinfo.pi_cksum_b64 ) );
 	break;
 
     default:
@@ -615,17 +615,17 @@ transcript( char *path )
 	    }
 	}
 
-	strcpy( pi.pi_name, path );
+	(void)strlcpy( pi.pi_name, path, sizeof( pi.pi_name ) );
 
 	/* if it's multiply referenced, check if it's a hardlink */
 	if ( !S_ISDIR( pi.pi_stat.st_mode ) && ( pi.pi_stat.st_nlink > 1 ) &&
 		(( linkpath = hardlink( &pi )) != NULL )) {
 	    pi.pi_type = 'h';
-	    strcpy( pi.pi_link, linkpath );
+	    (void)strlcpy( pi.pi_link, linkpath, sizeof( pi.pi_link ) );
 	} else if ( S_ISLNK( pi.pi_stat.st_mode )) {
 	    len = readlink( pi.pi_name, epath, MAXPATHLEN );
 	    epath[ len ] = '\0';
-	    strcpy( pi.pi_link, epath );
+	    (void)strlcpy( pi.pi_link, epath, sizeof( pi.pi_link ) );
 	}
 
 	/* By default, go into directories */
@@ -636,7 +636,7 @@ transcript( char *path )
 	}
 
 	/* initialize cksum field. */
-	strcpy( pi.pi_cksum_b64, "-" );
+	(void)strlcpy( pi.pi_cksum_b64, "-", sizeof( pi.pi_cksum_b64 ) );
     }
 
     for (;;) {
@@ -685,9 +685,9 @@ t_new( int type, char *fullname, char *shortname, char
     } else {
 	new->t_eof = 0; 
 	new->t_linenum = 0;
-	strcpy( new->t_shortname, shortname );
-	strcpy( new->t_fullname, fullname );
-	strcpy( new->t_kfile, kfile );
+	(void)strlcpy( new->t_shortname, shortname, sizeof( new->t_shortname ) );
+	(void)strlcpy( new->t_fullname, fullname, sizeof( new->t_fullname ) );
+	(void)strlcpy( new->t_kfile, kfile, sizeof( new->t_kfile ) );
 	if (( new->t_in = fopen( fullname, "r" )) == NULL ) {
 	    perror( fullname );
 	    exit( 2 );
@@ -752,7 +752,7 @@ transcript_init( char *kfile, int location )
 		    "special path too long: %s%s\n", kdir, special );
 	    exit( 2 );
 	}
-	sprintf( fullpath, "%s%s", kdir, special );
+	(void)snprintf( fullpath, sizeof( fullpath ), "%s%s", kdir, special );
 	t_new( T_SPECIAL, fullpath, special, "special" );
     }
 
