int veracrypt_parse_hash_655331 (char *input_buf, uint input_len, hash_t *hash_buf);
int win8phone_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf);
-void naive_escape (const char *cpath_real, char *cpath_escaped, const size_t cpath_escaped_len);
+void naive_replace (char *s, const u8 key_char, const u8 replace_char);
+void naive_escape (char *s, size_t s_max, const u8 key_char, const u8 escape_char);
void load_kernel (const char *kernel_file, int num_devices, size_t *kernel_lengths, const u8 **kernel_sources);
void writeProgramBin (char *dst, u8 *binary, size_t binary_size);
return -1;
}
+ naive_replace (cpath_real, '\\', '/');
+
+ // not escaping here, windows has quotes
+
snprintf (build_opts, sizeof (build_opts) - 1, "-I \"%s\"", cpath_real);
myfree (cpath_real);
return -1;
}
- char cpath_escaped[1024] = { 0 };
+ naive_escape (cpath_real, PATH_MAX, ' ', '\\');
- naive_escape (cpath_real, cpath_escaped, sizeof (cpath_escaped));
+ snprintf (build_opts, sizeof (build_opts) - 1, "-I %s", cpath_real);
myfree (cpath_real);
- snprintf (build_opts, sizeof (build_opts) - 1, "-I %s", cpath_escaped);
-
#endif
// we don't have sm_* on vendors not NV but it doesn't matter
data.devices_status = STATUS_QUIT;
}
-void naive_escape (const char *cpath_real, char *cpath_escaped, const size_t cpath_escaped_len)
+void naive_replace (char *s, const u8 key_char, const u8 replace_char)
{
- const size_t len = strlen (cpath_real);
+ const size_t len = strlen (s);
+
+ for (size_t in = 0; in < len; in++)
+ {
+ const u8 c = s[in];
+
+ if (c == key_char)
+ {
+ s[in] = replace_char;
+ }
+ }
+}
+
+void naive_escape (char *s, size_t s_max, const u8 key_char, const u8 escape_char)
+{
+ char s_escaped[1024] = { 0 };
+
+ size_t s_escaped_max = sizeof (s_escaped);
+
+ const size_t len = strlen (s);
for (size_t in = 0, out = 0; in < len; in++, out++)
{
- const u8 c = cpath_real[in];
+ const u8 c = s[in];
- if (c == ' ')
+ if (c == key_char)
{
- cpath_escaped[out] = '\\';
+ s_escaped[out] = escape_char;
out++;
}
- if (out == cpath_escaped_len) break;
+ if (out == s_escaped_max - 2) break;
- cpath_escaped[out] = c;
+ s_escaped[out] = c;
}
+
+ strncpy (s, s_escaped, s_max - 1);
}
void load_kernel (const char *kernel_file, int num_devices, size_t *kernel_lengths, const u8 **kernel_sources)