diff --git a/wrenchboard/src/shared_tool/family_acc.cc b/wrenchboard/src/shared_tool/family_acc.cc index a1958bea..2a427516 100644 --- a/wrenchboard/src/shared_tool/family_acc.cc +++ b/wrenchboard/src/shared_tool/family_acc.cc @@ -6,6 +6,8 @@ #include "email.h" #include "safestring.h" #include +#include +#include #include "pgsql.h" #include "pgsql_wrapper.h" #include @@ -1156,9 +1158,26 @@ wrenchboard=> select * from members_family; return ret; } +/* WARNING: Unsafe function without buffer length check! */ +void GeneratePIN(int length, char *buffer) { + if (length < 2) { + sprintf(buffer, "%d", rand() % 10); // if the PIN length is less than 2 - make a single digit + return; + } + // leading number must not be 0 + long long randomNumber = (rand() % 9) + 1; + const int n = length - 1; + for (int i = 0; i