]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
better errors
authorAlan T. DeKok <aland@freeradius.org>
Thu, 22 Jul 2021 20:59:49 +0000 (16:59 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Thu, 22 Jul 2021 20:59:49 +0000 (16:59 -0400)
src/main/cb.c

index d491c0c160f64e9c293030a6da771327cca4c505..372b8fa82286475cea9e79857aadfafc1e741d63 100644 (file)
@@ -220,12 +220,19 @@ void cbtls_msg(int write_p, int msg_version, int content_type,
 }
 
 int cbtls_password(char *buf,
-                  int num UNUSED,
+                  int num,
                   int rwflag UNUSED,
                   void *userdata)
 {
-       strcpy(buf, (char *)userdata);
-       return(strlen((char *)userdata));
+       size_t len;
+
+       len = strlcpy(buf, (char *)userdata, num);
+       if (len >= (size_t) num) {
+               ERROR("Password too long.  Maximum length is %i bytes", num - 1);
+               return 0;
+       }
+
+       return len;
 }
 
 #endif