diff options
Diffstat (limited to 'csci5271/hw1/hw1markup.md')
-rw-r--r-- | csci5271/hw1/hw1markup.md | 43 |
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 |