From 8f24f9f82cd5b107cf4fbab40ce2ae7159fd2d2d Mon Sep 17 00:00:00 2001
From: a2-stratford <alexander3.stratford@live.uwe.ac.uk>
Date: Mon, 2 Dec 2019 13:53:36 +0000
Subject: [PATCH] Update populate_stack.c

---
 userprog/populate_stack.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/userprog/populate_stack.c b/userprog/populate_stack.c
index 36acb8c..d66e30e 100644
--- a/userprog/populate_stack.c
+++ b/userprog/populate_stack.c
@@ -24,25 +24,27 @@ void populate_stack(void* stack_pointer, int argc, char** argv) {
 		memcpy(*stack_pointer, argv[i], strlen(argv[i]) + 1);
 	}
 
-	*stack_pointer = move_stack_pointer(*stack_pointer, -4); //Moves the stack pointer back 4
+    move_stack_pointer(*stack_pointer, -4); //Moves the stack pointer back 4
 
 	(*(int *)(*stack_pointer)) = 0;//sentinel          
 	i = argc;
 
 	while (--i >= 0)
 	{
-		*stack_pointer = move_stack_pointer(*stack_pointer, -4); //32bit  Moves the stack pointer back 4
+		move_stack_pointer(*stack_pointer, -4); //32bit  Moves the stack pointer back 4
 
 		(*(uint32_t **)(*stack_pointer)) = arr[i];
 	}
-
-	*stack_pointer = move_stack_pointer(*stack_pointer, -4);
-
-	(*(uintptr_t  **)(*stack_pointer)) = *stack_pointer = move_stack_pointer(*stack_pointer, 4); //Moves the stack pointer forwards 4
-	*stack_pointer = move_stack_pointer(*stack_pointer, -4); //Moves the stack pointer back 4
+	
+	move_stack_pointer(*stack_pointer, -4);
+    move_stack_pointer(*stack_pointer, 4); //Moves the stack pointer forwards 4
+    // TODO: Test if still required in later version
+    
+	(*(uintptr_t  **)(*stack_pointer)) = *stack_pointer
+	move_stack_pointer(*stack_pointer, -4); //Moves the stack pointer back 4
 
 	*(int *)(*stack_pointer) = argc;
-	*stack_pointer = move_stack_pointer(*stack_pointer, -4); //Moves the stack pointer back 4
+	move_stack_pointer(*stack_pointer, -4); //Moves the stack pointer back 4
 
 	(*(int *)(*stack_pointer)) = 0;
 }
-- 
GitLab