Blame 0001-usb_modeswitch-don-t-return-a-value-from-stack.patch
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
From 93686f8ba8c1ed6bf559dbfda53f9c7d702c76b5 Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
From: Lubomir Rintel <lkundrak@v3.sk>
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
Date: Thu, 21 Jul 2016 18:13:58 +0200
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
Subject: [PATCH] usb_modeswitch: don't return a value from stack
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
The memory is not allocated anymore when the function returns and that
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
causes no end of mayhem and undefined behavior.
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
Let's make it static so that it's perserved after the return. It wastes
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
LINE_DIM bytes of memory and requires the caller to consume the value
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
before another call, but that's no problem.
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
http://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?f=2&t=2557
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
---
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
usb_modeswitch.c | 3 ++-
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
diff --git a/usb_modeswitch.c b/usb_modeswitch.c
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
index f9c8b2e..3373ccf 100644
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
--- a/usb_modeswitch.c
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
+++ b/usb_modeswitch.c
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
@@ -1855,7 +1855,8 @@ char* ReadParseParam(const char* FileName, char *VariableName)
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
char *FirstQuote, *LastQuote, *P1, *P2;
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
int Line=0;
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
unsigned Len=0, Pos=0;
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
- char Str[LINE_DIM], *token, *configPos;
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
+ static char Str[LINE_DIM];
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
+ char *token, *configPos;
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
FILE *file = NULL;
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
// Reading and storing input during the first call
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
--
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
2.7.4
|
|
![](https://seccdn.libravatar.org/avatar/19d6d588001879430ddcedc3493348b9f9f8f576126e024e810c392eff7da7a8?s=16&d=retro) |
44f5b8c |
|