Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prevent creating malformed version #142

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

catap
Copy link

@catap catap commented Dec 7, 2022

Let assume that I run a cmake with option -DNETGEN_VERSION_GIT="v6.2.2204" (or without this option at all) to avoid calling git which won't work when I've downloaded sources from GitHub as .zip file.

If I try to compile sources and run it, it fails with error like:

libc++abi: terminating with uncaught exception of type std::invalid_argument: stoi: no conversion

after some digging I've discovered that netgen_version.hpp looks like:

#ifndef NETGEN_VERSION_HPP_INCLUDED
#define NETGEN_VERSION_HPP_INCLUDED
#define NETGEN_VERSION "6.2.0-v6.2.0.0-v6.2.0.0"
#define NETGEN_VERSION_MAJOR 6
#define NETGEN_VERSION_MINOR 2
#define NETGEN_VERSION_PATCH 0
#define NETGEN_VERSION_TWEAK v6.2.0.0
#define NETGEN_VERSION_HASH "v6.2.0.0"
#endif // NETGEN_VERSION_HPP_INCLUDED

This is happened because string(REGEX REPLACE copied original string to target and replaces it by regex. If regex doesn't match => it still copied an original value.

So, this commit prevented this mess from happened.

Let assume that I run a cmake with option `-DNETGEN_VERSION_GIT="v6.2.2204"` (or without this option at all) to avoid calling `git` which won't work when I've downloaded sources from GitHub as `.zip` file.

If I try to compile sources and run it, it fails with error like:
```
libc++abi: terminating with uncaught exception of type std::invalid_argument: stoi: no conversion
``` 
after some digging I've discovered that `netgen_version.hpp` looks like:
```
#ifndef NETGEN_VERSION_HPP_INCLUDED
#define NETGEN_VERSION_HPP_INCLUDED
#define NETGEN_VERSION "6.2.0-v6.2.0.0-v6.2.0.0"
#define NETGEN_VERSION_MAJOR 6
#define NETGEN_VERSION_MINOR 2
#define NETGEN_VERSION_PATCH 0
#define NETGEN_VERSION_TWEAK v6.2.0.0
#define NETGEN_VERSION_HASH "v6.2.0.0"
#endif // NETGEN_VERSION_HPP_INCLUDED
```

This is happened because `string(REGEX REPLACE` copied original string to target and replaces it by regex. If regex doesn't match => it still copied an original value.

So, this commit prevented this mess from happened.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant