ftpd - Fix security issue in libopie. FreeBSD-SA-10:05.opie
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 27 May 2010 19:51:32 +0000 (12:51 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 27 May 2010 19:51:32 +0000 (12:51 -0700)
* Fix a buffer overflow issue in libopie.

Submitted-by: Xin LI <delphij@delphij.net>
Credits: Maksymilian Arciemowicz and Adam Zabrocki

contrib/opie/libopie/readrec.c

index 98ec658..0f80315 100644 (file)
@@ -139,10 +139,8 @@ int __opiereadrec FUNCTION((opie), struct opie *opie)
     
     if (c = strchr(opie->opie_principal, ':'))
       *c = 0;
-    if (strlen(opie->opie_principal) > OPIE_PRINCIPAL_MAX)
-      (opie->opie_principal)[OPIE_PRINCIPAL_MAX] = 0;
     
-    strcpy(principal, opie->opie_principal);
+    strlcpy(principal, opie->opie_principal, sizeof(principal));
     
     do {
       if ((opie->opie_recstart = ftell(f)) < 0)