summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJavier Sánchez Parra <jsanchez@soleta.eu>2021-02-05 11:19:41 +0100
committerOpenGnSys Support Team <soporte-og@soleta.eu>2021-02-08 22:36:29 +0100
commit0e4857a5389dfe919b18cb872f0b1d0948b4df52 (patch)
tree320f1faf769abf756ba20087efb20d0b67d825b2
parentf3905fe0f9f8186b2feaf96030946e6cdd3812db (diff)
#1019 Fix restore-image legacy string parser
UMA reports that the restore image command (in queue mode) does not work, the non-queue mode works fine though. WebConsole stores queued commands in the database using the deprecated SocketHidra legacy string format and ogServer parses them with sscanf(). The restore-image command has the field "ptc" which stores a string with whitespaces, however, ogServer expects no whitespaces ("%s"). Update parser to read until carriage return, whitespaces included.
-rw-r--r--src/rest.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/rest.c b/src/rest.c
index 5ca27ad..7735021 100644
--- a/src/rest.c
+++ b/src/rest.c
@@ -2344,7 +2344,8 @@ static int og_cmd_legacy_image_restore(const char *input, struct og_cmd *cmd)
struct og_image_legacy img = {};
if (sscanf(input,
- "dsk=%s\rpar=%s\ridi=%s\rnci=%s\ripr=%s\rifs=%s\rptc=%s\r",
+ "dsk=%s\rpar=%s\ridi=%s\rnci=%s\r"
+ "ipr=%s\rifs=%s\rptc=%[^\r]\r",
img.disk, img.part, img.image_id, img.name, img.repo,
software_id_str, restore_type_str) != 7)
return -1;