summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--trafgen_lexer.l9
1 files changed, 5 insertions, 4 deletions
diff --git a/trafgen_lexer.l b/trafgen_lexer.l
index 2df1881..20b6efe 100644
--- a/trafgen_lexer.l
+++ b/trafgen_lexer.l
@@ -14,15 +14,18 @@
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
+#include <stdbool.h>
#include "trafgen_parser.tab.h"
#include "xmalloc.h"
+#include "built_in.h"
extern void yyerror(const char *);
static char *try_convert_shellcode(char *sstr)
{
int j = 0;
+ bool found_any = false;
char *bstr, *ostr = sstr, *hay;
size_t blen, slen = strlen(sstr), tot = 0;
const char *needle = "\\x";
@@ -37,14 +40,12 @@ static char *try_convert_shellcode(char *sstr)
hay = sstr;
while ((hay = strstr(hay, needle)) != NULL ) {
hay += strlen(needle) + 2;
+ found_any = true;
tot++;
}
- if (blen != tot) {
- printf("Warning: mixed shellcode with strings, "
- "using strings!\n");
+ if (blen != tot || !found_any)
return sstr;
- }
blen += 2;
bstr = xzmalloc(blen);
20/0x150 cpu_subsys_online+0x64/0xe0 device_online+0xb4/0x120 online_store+0xb4/0xc0 dev_attr_store+0x68/0xa0 sysfs_kf_write+0x80/0xb0 kernfs_fop_write+0x17c/0x250 __vfs_write+0x6c/0x1e0 vfs_write+0xd0/0x270 SyS_write+0x6c/0x110 system_call+0x38/0xe0 Examination of the queue showed a single reference (no PERCPU_COUNT_BIAS, and __PERCPU_REF_DEAD, __PERCPU_REF_ATOMIC set) and no requests. However, conditions at the time of the race are count of PERCPU_COUNT_BIAS + 0 and __PERCPU_REF_DEAD and __PERCPU_REF_ATOMIC set. The fix is to make the tryget routines use an actual boolean internally instead of the atomic long result truncated to a int. Fixes: e625305b3907 percpu-refcount: make percpu_ref based on longs instead of ints Link: https://bugzilla.kernel.org/show_bug.cgi?id=190751 Signed-off-by: Douglas Miller <dougmill@linux.vnet.ibm.com> Reviewed-by: Jens Axboe <axboe@fb.com> Signed-off-by: Tejun Heo <tj@kernel.org> Fixes: e625305b3907 ("percpu-refcount: make percpu_ref based on longs instead of ints") Cc: stable@vger.kernel.org # v3.18+
Diffstat (limited to 'include/acpi/acpi_numa.h')