aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndre Heinecke <[email protected]>2018-08-08 07:22:46 +0000
committerAndre Heinecke <[email protected]>2018-08-08 07:22:46 +0000
commit3b782443600e8091c5f19580cb218100bcbb4ad7 (patch)
tree972441765476b917ecb47aeec5b07884ff39f35b
parentMake GNUPGHOME for tests overridable (diff)
downloadgpgme-3b782443600e8091c5f19580cb218100bcbb4ad7.tar.gz
gpgme-3b782443600e8091c5f19580cb218100bcbb4ad7.zip
cpp: Fix use after free in gencardkeyinteractor
* lang/cpp/src/gpggencardkeyinteractor.cpp (GpgGenCardKeyInteractor::Private::keysize): Change to string. -- The value is only required as string so we can save it this way to avoid the need to convert it for the action command. GnuPG-Bug-Id: T4094
-rw-r--r--lang/cpp/src/gpggencardkeyinteractor.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/lang/cpp/src/gpggencardkeyinteractor.cpp b/lang/cpp/src/gpggencardkeyinteractor.cpp
index 6f42e473..0ed6781a 100644
--- a/lang/cpp/src/gpggencardkeyinteractor.cpp
+++ b/lang/cpp/src/gpggencardkeyinteractor.cpp
@@ -36,12 +36,11 @@ using namespace GpgME;
class GpgGenCardKeyInteractor::Private
{
public:
- Private() : keysize(2048), backup(false)
+ Private() : keysize("2048"), backup(false)
{
}
- std::string name, email, backupFileName, expiry, serial;
- int keysize;
+ std::string name, email, backupFileName, expiry, serial, keysize;
bool backup;
};
@@ -70,7 +69,7 @@ void GpgGenCardKeyInteractor::setDoBackup(bool value)
void GpgGenCardKeyInteractor::setKeySize(int value)
{
- d->keysize = value;
+ d->keysize = std::to_string(value);
}
void GpgGenCardKeyInteractor::setExpiry(const std::string &timeStr)
@@ -132,7 +131,7 @@ const char *GpgGenCardKeyInteractor::action(Error &err) const
case SIZE:
case SIZE2:
case SIZE3:
- return std::to_string(d->keysize).c_str();
+ return d->keysize.c_str();
case COMMENT:
return "";
case SAVE: