}
static int reply_string_cb(void *params, const unsigned char *val, size_t len) {
- char *str = scalloc(len + 1);
+ char *str = scalloc(len + 1, 1);
strncpy(str, (const char *)val, len);
if (strcmp(last_key, "error") == 0)
last_reply.error = str;
static int reply_map_key_cb(void *params, const unsigned char *keyVal, size_t keyLen) {
free(last_key);
- last_key = scalloc(keyLen + 1);
+ last_key = scalloc(keyLen + 1, 1);
strncpy(last_key, (const char *)keyVal, keyLen);
return 1;
}
};
int main(int argc, char *argv[]) {
- socket_path = getenv("I3SOCK");
+#if defined(__OpenBSD__)
+ if (pledge("stdio rpath unix", NULL) == -1)
+ err(EXIT_FAILURE, "pledge");
+#endif
+ char *env_socket_path = getenv("I3SOCK");
+ if (env_socket_path)
+ socket_path = sstrdup(env_socket_path);
+ else
+ socket_path = NULL;
int o, option_index = 0;
uint32_t message_type = I3_IPC_MESSAGE_TYPE_COMMAND;
char *payload = NULL;
payload = sstrdup(argv[optind]);
} else {
char *both;
- if (asprintf(&both, "%s %s", payload, argv[optind]) == -1)
- err(EXIT_FAILURE, "asprintf");
+ sasprintf(&both, "%s %s", payload, argv[optind]);
free(payload);
payload = both;
}