rebus / rpms / libemu

Forked from rpms/libemu 3 years ago
Clone
Blob Blame History Raw
From 6c1a774e6d342912d646935432b426b4da6d3c93 Mon Sep 17 00:00:00 2001
From: tpltnt <tpltnt.github@dropcut.net>
Date: Sat, 13 Aug 2016 20:31:07 +0200
Subject: [PATCH] fixing potential NULL pointer dereferences

---
 tools/sctest/nanny.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/tools/sctest/nanny.c b/tools/sctest/nanny.c
index 7d41264..ee14dd9 100644
--- a/tools/sctest/nanny.c
+++ b/tools/sctest/nanny.c
@@ -9,6 +9,10 @@
 struct nanny *nanny_new(void)
 {
 	struct nanny *na = malloc(sizeof(struct nanny));
+	if (NULL == na)
+	{
+		return NULL;
+	}
 	memset(na, 0, sizeof(struct nanny));
 
 	na->files = emu_hashtable_new(16, emu_hashtable_ptr_hash, emu_hashtable_ptr_cmp);
@@ -19,6 +23,10 @@ struct nanny *nanny_new(void)
 struct nanny_file *nanny_add_file(struct nanny *na, const char *path, uint32_t *emu_file, FILE *real_file)
 {
 	struct nanny_file *file = malloc(sizeof(struct nanny_file));
+	if (NULL == file)
+	{
+		return NULL;
+	}
 	memset(file, 0, sizeof(struct nanny_file));
 
 	*emu_file = rand();
From c3fb84dc99b01805c7f01d52527339dd58ceabbe Mon Sep 17 00:00:00 2001
From: tpltnt <tpltnt.github@dropcut.net>
Date: Sat, 13 Aug 2016 20:37:05 +0200
Subject: [PATCH] fixing potential NULL pointer dereferences

---
 src/environment/emu_env.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/environment/emu_env.c b/src/environment/emu_env.c
index 0183c80..02b9128 100644
--- a/src/environment/emu_env.c
+++ b/src/environment/emu_env.c
@@ -5,7 +5,8 @@
  *
  *
  * Copyright (C) 2008  Paul Baecher & Markus Koetter
- * 
+ * Copyright (C) 2016  tpltnt
+ *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
@@ -34,6 +35,10 @@
 struct emu_env *emu_env_new(struct emu *e)
 {
 	struct emu_env *env = malloc(sizeof(struct emu_env));
+	if (NULL == env)
+	{
+		return NULL;
+	}
 	memset(env, 0, sizeof(struct emu_env));
 	env->env.lin = emu_env_linux_new(e);
 	env->env.win = emu_env_w32_new(e);
From 5d88320054b642c6388a6af05cf397895b82e2d5 Mon Sep 17 00:00:00 2001
From: tpltnt <tpltnt.github@dropcut.net>
Date: Sat, 13 Aug 2016 20:44:55 +0200
Subject: [PATCH] fixing potential NULL pointer dereference

---
 src/emu_cpu.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/emu_cpu.c b/src/emu_cpu.c
index c244bf5..e95eb03 100644
--- a/src/emu_cpu.c
+++ b/src/emu_cpu.c
@@ -5,6 +5,7 @@
  *
  *
  * Copyright (C) 2007  Paul Baecher & Markus Koetter
+ * Copyright (C) 2016  tpltnt
  * 
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -209,6 +210,11 @@ void emu_cpu_debug_print(struct emu_cpu *c)
 
 	char *fmsg;
 	fmsg = (char *)malloc(32*3+1);
+	if (NULL == fmsg)
+	{
+		logDebug(c->emu, "allocating memory failed in emu_cpu_debug_print(struct emu_cpu *c)");
+		return;
+	}
 	memset(fmsg, 0, 32*3+1);
 	int i;
 	for ( i=0;i<32;i++ )
From b8c35bf2c3704fb8acc0501abc33be0a4d146c1c Mon Sep 17 00:00:00 2001
From: tpltnt <tpltnt.github@dropcut.net>
Date: Sat, 13 Aug 2016 21:25:01 +0200
Subject: [PATCH] fixing potential NULL pointer dereference

---
 src/emu_stack.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/emu_stack.c b/src/emu_stack.c
index 770ac4e..7370156 100644
--- a/src/emu_stack.c
+++ b/src/emu_stack.c
@@ -5,6 +5,7 @@
  *
  *
  * Copyright (C) 2008  Paul Baecher & Markus Koetter
+ * Copyright (C) 2016  tpltnt
  * 
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -35,6 +36,10 @@
 struct emu_stack *emu_stack_new(void)
 {
 	struct emu_stack *es = malloc(sizeof(struct emu_stack));
+	if (NULL == es)
+	{
+		return NULL;
+	}
 	memset(es, 0, sizeof(struct emu_stack));
 	return es;
 }
From d41a3737ab62e9aaaabb791f8959c7cbd9d77a7a Mon Sep 17 00:00:00 2001
From: tpltnt <tpltnt.github@dropcut.net>
Date: Sat, 13 Aug 2016 21:28:54 +0200
Subject: [PATCH] fixing potential NULL pointer dereference

---
 src/emu_memory.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/emu_memory.c b/src/emu_memory.c
index c2f2642..d396ebe 100644
--- a/src/emu_memory.c
+++ b/src/emu_memory.c
@@ -5,6 +5,7 @@
  *
  *
  * Copyright (C) 2007  Paul Baecher & Markus Koetter
+ * Copyright (C) 2016  tpltnt
  * 
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -368,6 +369,10 @@ int32_t emu_memory_read_string(struct emu_memory *m, uint32_t addr, struct emu_s
 	}
 
 	s->data = malloc(i + 1);
+	if (NULL == s->data)
+	{
+		return -1;
+	}
 	memset(s->data, 0, i + 1);
 	s->size = i;
 
From 23117b2b9cff6346feb944611c05cc723820a3ba Mon Sep 17 00:00:00 2001
From: tpltnt <tpltnt.github@dropcut.net>
Date: Sat, 13 Aug 2016 21:33:28 +0200
Subject: [PATCH] fixing potential NULL pointer dereferences

---
 tools/sctest/dot.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/tools/sctest/dot.c b/tools/sctest/dot.c
index 0d53dfa..dc4d579 100644
--- a/tools/sctest/dot.c
+++ b/tools/sctest/dot.c
@@ -5,6 +5,7 @@
  *
  *
  * Copyright (C) 2007  Paul Baecher & Markus Koetter
+ * Copyright (C) 2016  tpltnt
  * 
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -75,6 +76,10 @@
 struct instr_vertex *instr_vertex_new(uint32_t theeip, const char *instr_string)
 {
 	struct instr_vertex *iv = (struct instr_vertex *)malloc(sizeof(struct instr_vertex));
+	if (NULL == iv)
+	{
+		return NULL;
+	}
 	memset(iv, 0, sizeof(struct instr_vertex));
 	iv->eip = theeip;
 	iv->instr_string = emu_string_new();
@@ -91,6 +96,10 @@ void instr_vertex_free(struct instr_vertex *iv)
 struct instr_vertex *instr_vertex_copy(struct instr_vertex *from)
 {
 	struct instr_vertex *iv = (struct instr_vertex *)malloc(sizeof(struct instr_vertex));
+	if (NULL == iv)
+	{
+		return NULL;
+	}
 	memset(iv, 0, sizeof(struct instr_vertex));
 	iv->eip = from->eip;
 	iv->instr_string = emu_string_new();
From 0267a6f003b5e08069d8e266826865f42f939025 Mon Sep 17 00:00:00 2001
From: tpltnt <tpltnt.github@dropcut.net>
Date: Sat, 13 Aug 2016 21:51:23 +0200
Subject: [PATCH] fixing a potential NULL pointer dereference

---
 src/emu_memory.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/emu_memory.c b/src/emu_memory.c
index d396ebe..632a608 100644
--- a/src/emu_memory.c
+++ b/src/emu_memory.c
@@ -368,6 +368,10 @@ int32_t emu_memory_read_string(struct emu_memory *m, uint32_t addr, struct emu_s
 		i++;
 	}
 
+	if (NULL == s)
+	{
+		return -1;
+	}
 	s->data = malloc(i + 1);
 	if (NULL == s->data)
 	{
From d15e16cee40898dd035537a47b5e97c404387b83 Mon Sep 17 00:00:00 2001
From: tpltnt <tpltnt.github@dropcut.net>
Date: Sat, 13 Aug 2016 21:56:23 +0200
Subject: [PATCH] fixing potential NULL pointer dereference

---
 src/environment/win32/emu_env_w32_dll_export.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/environment/win32/emu_env_w32_dll_export.c b/src/environment/win32/emu_env_w32_dll_export.c
index ee5798c..29347b5 100644
--- a/src/environment/win32/emu_env_w32_dll_export.c
+++ b/src/environment/win32/emu_env_w32_dll_export.c
@@ -5,6 +5,7 @@
  *
  *
  * Copyright (C) 2007  Paul Baecher & Markus Koetter
+ * Copyright (C) 2016  tpltnt
  * 
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -52,6 +53,10 @@
 struct emu_env_w32_dll_export *emu_env_w32_dll_export_new(void)
 {
 	struct emu_env_w32_dll_export *exp = (struct emu_env_w32_dll_export *)malloc(sizeof(struct emu_env_w32_dll_export));
+	if (NULL == exp)
+	{
+		return NULL;
+	}
 	memset(exp,0,sizeof(struct emu_env_w32_dll_export));
 	return exp;
 }
From 56ff307ea36b938a11151bb22432b1ab561d71ea Mon Sep 17 00:00:00 2001
From: tpltnt <tpltnt.github@dropcut.net>
Date: Sat, 13 Aug 2016 21:59:06 +0200
Subject: [PATCH] fixing potential NULL pointer dereference

---
 src/environment/win32/emu_env_w32_dll.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/environment/win32/emu_env_w32_dll.c b/src/environment/win32/emu_env_w32_dll.c
index 378431d..59dd280 100644
--- a/src/environment/win32/emu_env_w32_dll.c
+++ b/src/environment/win32/emu_env_w32_dll.c
@@ -5,6 +5,7 @@
  *
  *
  * Copyright (C) 2007  Paul Baecher & Markus Koetter
+ * Copyright (C) 2016  tpltnt
  * 
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -37,8 +38,12 @@
 struct emu_env_w32_dll *emu_env_w32_dll_new(void)
 {
 	struct emu_env_w32_dll *dll = (struct emu_env_w32_dll *)malloc(sizeof(struct emu_env_w32_dll));
+	if (NULL == dll)
+	{
+		return NULL;
+	}
 	memset(dll,0,sizeof(struct emu_env_w32_dll));
-    return dll;
+	return dll;
 }
 
 void emu_env_w32_dll_free(struct emu_env_w32_dll *dll)
From bdb14b443ff1b5294ecbc1ab7ba9b430b7ab2d50 Mon Sep 17 00:00:00 2001
From: tpltnt <tpltnt.github@dropcut.net>
Date: Sat, 13 Aug 2016 22:05:00 +0200
Subject: [PATCH] fixing potential NULL pointer dereferences

---
 src/emu_track.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/emu_track.c b/src/emu_track.c
index 79a2545..e8749f1 100644
--- a/src/emu_track.c
+++ b/src/emu_track.c
@@ -5,6 +5,7 @@
  *
  *
  * Copyright (C) 2007  Paul Baecher & Markus Koetter
+ * Copyright (C) 2016  tpltnt
  * 
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -40,6 +41,10 @@
 struct emu_track_and_source *emu_track_and_source_new(void)
 {
 	struct emu_track_and_source *et = (struct emu_track_and_source *)malloc(sizeof(struct emu_track_and_source));
+	if (NULL == et)
+	{
+		return NULL;
+	}
 	memset(et, 0, sizeof(struct emu_track_and_source));
 	et->track.reg[esp] = 0xffffffff;
 	return et;
@@ -185,6 +190,10 @@ void emu_tracking_info_diff(struct emu_tracking_info *a, struct emu_tracking_inf
 struct emu_tracking_info *emu_tracking_info_new(void)
 {
 	struct emu_tracking_info *eti = malloc(sizeof(struct emu_tracking_info));
+	if (NULL == eti)
+	{
+		return NULL;
+	}    
 	memset(eti, 0, sizeof(struct emu_tracking_info));
 	eti->reg[esp] = 0xffffffff;
 	return eti;