mirror of https://github.com/lukechilds/node.git
Browse Source
Make the revert related functions inline to eliminate the need for node_revert.cc, prefix the constants and the def, other misc cleanup PR-URL: https://github.com/nodejs/node/pull/14864 Reviewed-By: Anna Henningsen <anna@addaleax.net>canary-base
5 changed files with 48 additions and 80 deletions
@ -1,53 +0,0 @@ |
|||
#include "node_revert.h" |
|||
#include <stdio.h> |
|||
#include <string.h> |
|||
|
|||
namespace node { |
|||
|
|||
unsigned int reverted = 0; |
|||
|
|||
static const char* RevertMessage(const unsigned int cve) { |
|||
#define V(code, label, msg) case REVERT_ ## code: return label ": " msg; |
|||
switch (cve) { |
|||
REVERSIONS(V) |
|||
default: |
|||
return "Unknown"; |
|||
} |
|||
#undef V |
|||
} |
|||
|
|||
void Revert(const unsigned int cve) { |
|||
reverted |= 1 << cve; |
|||
printf("SECURITY WARNING: Reverting %s\n", RevertMessage(cve)); |
|||
} |
|||
|
|||
void Revert(const char* cve) { |
|||
#define V(code, label, _) \ |
|||
do { \ |
|||
if (strcmp(cve, label) == 0) { \ |
|||
Revert(static_cast<unsigned int>(REVERT_ ## code)); \ |
|||
return; \ |
|||
} \ |
|||
} while (0); |
|||
REVERSIONS(V) |
|||
#undef V |
|||
printf("Error: Attempt to revert an unknown CVE [%s]\n", cve); |
|||
exit(12); |
|||
} |
|||
|
|||
bool IsReverted(const unsigned int cve) { |
|||
return reverted & (1 << cve); |
|||
} |
|||
|
|||
bool IsReverted(const char * cve) { |
|||
#define V(code, label, _) \ |
|||
do { \ |
|||
if (strcmp(cve, label) == 0) \ |
|||
return IsReverted(static_cast<unsigned int>(REVERT_ ## code)); \ |
|||
} while (0); |
|||
REVERSIONS(V) |
|||
return false; |
|||
#undef V |
|||
} |
|||
|
|||
} // namespace node
|
Loading…
Reference in new issue