diff options
Diffstat (limited to 'debian/patches/0135-replace_gets.patch')
-rw-r--r-- | debian/patches/0135-replace_gets.patch | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/debian/patches/0135-replace_gets.patch b/debian/patches/0135-replace_gets.patch new file mode 100644 index 0000000..26b21ec --- /dev/null +++ b/debian/patches/0135-replace_gets.patch @@ -0,0 +1,66 @@ +Description: Replace deprecated gets() with std::cin.getline() +Author: Jörg Frings-Fürst <debian@jff-webhosting.net> +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=841626 +Last-Update: 2016-10-22 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: xbase64-3.1.2/bin/dbfutil1.cpp +=================================================================== +--- xbase64-3.1.2.orig/bin/dbfutil1.cpp ++++ xbase64-3.1.2/bin/dbfutil1.cpp +@@ -38,6 +38,7 @@ + */ + + #include <xbase64/xbase64.h> ++#include <limits> + + // next lines are helpful for debugging purposes + /* +@@ -153,11 +154,16 @@ void MyClass::FilterMenu() + /************************************************************************/ + void MyClass::SetFilter() + { +- char Expression[512]; +- memset( Expression, 0x00, 512 ); ++ constexpr int SIZE = 512; ++ ++ char Expression[SIZE]; ++ memset( Expression, 0x00, SIZE ); + while( !strlen( Expression )){ + std::cout << "Enter filter expression (like AMOUNT<5)" << std::endl; +- gets( Expression ); ++ ++ std::cin.getline(Expression, SIZE-1); ++ Expression[SIZE-1] = '\0'; ++ std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); + } + if( xbf ) + delete xbf; +@@ -235,19 +241,24 @@ void MyClass::LastFilterRec() + #ifdef XB_EXPRESSIONS + void MyClass::ProcessExpression() + { +- char exprsn[256]; ++ constexpr int SIZE = 256; ++ ++ char exprsn[SIZE]; + char type; + xbExpn *exp; // expression + xbShort rc; + int debug = 0; +- memset( exprsn, 0x00, 256 ); ++ memset( exprsn, 0x00, SIZE ); + + std::cout << "Enter expression string or HELP" << std::endl; + + while( !strstr( exprsn, "QUIT" ) && !strstr( exprsn, "quit" )){ + + std::cout << ">"; +- gets( exprsn ); ++ ++ std::cin.getline(exprsn, SIZE-1); ++ exprsn[SIZE-1] = '\0'; ++ std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); + + if( strstr( exprsn, "HELP" ) || strstr( exprsn, "help" )){ + std::cout << "** Command Help ***" << std::endl << std::endl; |