aboutsummaryrefslogtreecommitdiffstats
path: root/csci5271/hw1/hw1markup.md
diff options
context:
space:
mode:
Diffstat (limited to 'csci5271/hw1/hw1markup.md')
-rw-r--r--csci5271/hw1/hw1markup.md43
1 files changed, 43 insertions, 0 deletions
diff --git a/csci5271/hw1/hw1markup.md b/csci5271/hw1/hw1markup.md
new file mode 100644
index 0000000..a870d15
--- /dev/null
+++ b/csci5271/hw1/hw1markup.md
@@ -0,0 +1,43 @@
+# Homework 1
+## Q1
+
+## Q2
+### A: Perl
+After adding a name to the request, add a semicolon followed by the command. The semicolon is the shell command separator which allows it to parse commands.
+#### Example Request
+```
+"?field-name=;perl+-e+'`command`'"
+```
+### B: C
+
+## Q3
+
+## Q4
+### A
+#### Mistake 1a: Potentially overloading the array
+If the function is called with `to` larger than outer bound of the array, there is a buffer overflow that happens. For example, running it by default with an array of size 10 with a `to` of size 11 on gcc 11.1 causes it to crash because of stack smashing.
+##### Mistake 1b: Underloading the array
+If the function is called with `from` smaller than 0 will cause some values of the array to be replaced with other values from memory. It did not crash, but it is not the intended behavior.
+#### Mistake 2:
+
+#### Mistake 3:
+
+### B: Same Signature
+```c
+ void reverse_range(int *a, int from, int to) {
+
+```
+### C: Different Signature
+```c
+ int* reverse_range(int arr[], int arrSize, int from, int to) {
+ if (from < 0 || to >= arrSize)
+ return NULL;
+ for (int i = from; i < to; i++) {
+ int temp = arr[i];
+ arr[i] = arr[to];
+ arr[to] = temp;
+ to--;
+ }
+ return arr;
+```
+## Q5 \ No newline at end of file