]> git.saurik.com Git - cycript.git/blobdiff - Inject.cpp
Precedence and RightHand have to represent Output.
[cycript.git] / Inject.cpp
index 051fc0c2764fa07eb42d6a927baf05c12db45087..b5136f6b94340a2c6b2c5b6178064be2f57fdb09 100644 (file)
@@ -28,6 +28,8 @@
 #include "Pooling.hpp"
 
 #if defined(__APPLE__) && (defined(__i386__) || defined(__x86_64__))
+#include <unistd.h>
+
 #include <sys/fcntl.h>
 #include <sys/mman.h>
 
@@ -53,7 +55,7 @@ Type_ *shift(Type_ *data, size_t size) {
     return reinterpret_cast<Type_ *>(reinterpret_cast<uint8_t *>(data) + size);
 }
 
-void InjectLibrary(int pid, int argc, const char *argv[]) {
+void InjectLibrary(int pid, int argc, const char *const argv[]) {
     auto cynject(LibraryFor(reinterpret_cast<void *>(&main)));
     auto slash(cynject.rfind('/'));
     _assert(slash != std::string::npos);
@@ -65,7 +67,8 @@ void InjectLibrary(int pid, int argc, const char *argv[]) {
     off_t offset;
     _assert(csops(pid, CS_OPS_PIDOFFSET, &offset, sizeof(offset)) != -1);
 
-    char path[PATH_MAX];
+    // XXX: implement a safe version of this
+    char path[4096];
     int writ(proc_pidpath(pid, path, sizeof(path)));
     _assert(writ != 0);