diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/AFC.c | 4 | ||||
-rw-r--r-- | src/ifuse.c | 3 | ||||
-rw-r--r-- | src/initconf.c | 26 | ||||
-rw-r--r-- | src/iphone.c | 5 | ||||
-rw-r--r-- | src/lockdown.c | 15 | ||||
-rw-r--r-- | src/usbmux.c | 2 | ||||
-rw-r--r-- | src/userpref.c | 3 |
7 files changed, 37 insertions, 21 deletions
@@ -20,7 +20,7 @@ */ #include "AFC.h" - +#include "plist.h" // This is the maximum size an AFC data packet can be const int MAXIMUM_PACKET_SIZE = (2 << 15) - 32; @@ -211,7 +211,7 @@ static int receive_AFC_data(AFClient *client, char **dump_here) { break; } if (strstr(buffer, "CFA6LPAA")) { - if (debug) printf("receive_AFC_data: WARNING: there is AFC data in this packet at %i\n", strstr(buffer, "CFA6LPAA") - buffer); + if (debug) printf("receive_AFC_data: WARNING: there is AFC data in this packet at %ti\n", strstr(buffer, "CFA6LPAA") - buffer); if (debug) printf("receive_AFC_data: the total packet length is %i\n", bytes); //continue; // but we do need to continue because packets/headers != data } diff --git a/src/ifuse.c b/src/ifuse.c index aa06070..6a24bad 100644 --- a/src/ifuse.c +++ b/src/ifuse.c @@ -194,7 +194,7 @@ void *ifuse_init(struct fuse_conn_info *conn) { } host_id = get_host_id(); - if (host_id && !lockdownd_start_SSL_session(control, host_id) || !host_id) { + if ((host_id && !lockdownd_start_SSL_session(control, host_id)) || !host_id) { fprintf(stderr, "Something went wrong in GnuTLS. Is your HostID configured in .config/libiphone/libiphonerc?\n"); return NULL; } @@ -263,7 +263,6 @@ int ifuse_truncate(const char *path, off_t size) { } int ifuse_ftruncate(const char *path, off_t size, struct fuse_file_info *fi) { - int result = 0; AFClient *afc = fuse_get_context()->private_data; AFCFile *file = g_hash_table_lookup(file_handles, &fi->fh); if (!file) return -ENOENT; diff --git a/src/initconf.c b/src/initconf.c index be697e8..0149ac9 100644 --- a/src/initconf.c +++ b/src/initconf.c @@ -22,6 +22,7 @@ #include <stdio.h> #include <stdlib.h> #include <gnutls/gnutls.h> +#include <gnutls/x509.h> #include <glib.h> #include "userpref.h" @@ -54,6 +55,7 @@ int main(int argc, char *argv[]) { gnutls_global_init(); + size_t size; char* host_id = NULL; //"29942970-207913891623273984" gnutls_x509_privkey_t root_privkey; gnutls_x509_privkey_t host_privkey; @@ -99,26 +101,34 @@ int main(int argc, char *argv[]) { gnutls_datum_t root_key_pem = {NULL, 0}; gnutls_datum_t host_key_pem = {NULL, 0}; - gnutls_x509_privkey_export (root_privkey, GNUTLS_X509_FMT_PEM, NULL, &root_key_pem.size); - gnutls_x509_privkey_export (host_privkey, GNUTLS_X509_FMT_PEM, NULL, &host_key_pem.size); + gnutls_x509_privkey_export (root_privkey, GNUTLS_X509_FMT_PEM, NULL, &size); + root_key_pem.size = size; + gnutls_x509_privkey_export (host_privkey, GNUTLS_X509_FMT_PEM, NULL, &size); + host_key_pem.size = size; root_key_pem.data = gnutls_malloc(root_key_pem.size); host_key_pem.data = gnutls_malloc(host_key_pem.size); - gnutls_x509_privkey_export (root_privkey, GNUTLS_X509_FMT_PEM, root_key_pem.data, &root_key_pem.size); - gnutls_x509_privkey_export (host_privkey, GNUTLS_X509_FMT_PEM, host_key_pem.data, &host_key_pem.size); + gnutls_x509_privkey_export (root_privkey, GNUTLS_X509_FMT_PEM, root_key_pem.data, &size); + root_key_pem.size = size; + gnutls_x509_privkey_export (host_privkey, GNUTLS_X509_FMT_PEM, host_key_pem.data, &size); + host_key_pem.size = size; gnutls_datum_t root_cert_pem = {NULL, 0}; gnutls_datum_t host_cert_pem = {NULL, 0}; - gnutls_x509_crt_export (root_cert, GNUTLS_X509_FMT_PEM, NULL, &root_cert_pem.size); - gnutls_x509_crt_export (host_cert, GNUTLS_X509_FMT_PEM, NULL, &host_cert_pem.size); + gnutls_x509_crt_export (root_cert, GNUTLS_X509_FMT_PEM, NULL, &size); + root_cert_pem.size = size; + gnutls_x509_crt_export (host_cert, GNUTLS_X509_FMT_PEM, NULL, &size); + host_cert_pem.size = size; root_cert_pem.data = gnutls_malloc(root_cert_pem.size); host_cert_pem.data = gnutls_malloc(host_cert_pem.size); - gnutls_x509_crt_export (root_cert, GNUTLS_X509_FMT_PEM, root_cert_pem.data, &root_cert_pem.size); - gnutls_x509_crt_export (host_cert, GNUTLS_X509_FMT_PEM, host_cert_pem.data, &host_cert_pem.size); + gnutls_x509_crt_export (root_cert, GNUTLS_X509_FMT_PEM, root_cert_pem.data, &size); + root_cert_pem.size = size; + gnutls_x509_crt_export (host_cert, GNUTLS_X509_FMT_PEM, host_cert_pem.data, &size); + host_cert_pem.size = size; /* store values in config file */ diff --git a/src/iphone.c b/src/iphone.c index 426b629..558dd9a 100644 --- a/src/iphone.c +++ b/src/iphone.c @@ -21,6 +21,7 @@ #include "usbmux.h" #include "iphone.h" +#include <arpa/inet.h> #include <usb.h> #include <stdio.h> #include <stdlib.h> @@ -141,13 +142,13 @@ int send_to_phone(iPhone *phone, char *data, int datalen) { if (!phone) return -1; int bytes = 0; // it may die here - if (debug) printf("dying here?\ndatalen = %i\ndata = %x\n", datalen, data); + if (debug) printf("dying here?\ndatalen = %i\ndata = %p\n", datalen, data); bytes = usb_bulk_write(phone->device, BULKOUT, data, datalen, 800); if (debug) printf("noooo...?\n"); if (bytes < datalen) { if(debug && bytes < 0) - printf("send_to_iphone(): libusb gave me the error %d: %s\n", bytes, usb_strerror(), strerror(-bytes)); + printf("send_to_iphone(): libusb gave me the error %d: %s - %s\n", bytes, usb_strerror(), strerror(-bytes)); return -1; } else { return bytes; diff --git a/src/lockdown.c b/src/lockdown.c index 78ab6a9..7f938fb 100644 --- a/src/lockdown.c +++ b/src/lockdown.c @@ -23,10 +23,12 @@ #include "iphone.h" #include "lockdown.h" #include "userpref.h" +#include <arpa/inet.h> #include <errno.h> #include <string.h> #include <glib.h> #include <libtasn1.h> +#include <gnutls/x509.h> extern int debug; @@ -446,9 +448,12 @@ int lockdownd_gen_pair_cert(char *public_key_b64, char **device_cert_b64, char * /* if everything went well, export in PEM format */ gnutls_datum_t dev_pem = {NULL, 0}; - gnutls_x509_crt_export(dev_cert, GNUTLS_X509_FMT_PEM, NULL, &dev_pem.size); + size_t crt_size; + gnutls_x509_crt_export(dev_cert, GNUTLS_X509_FMT_PEM, NULL, &crt_size); + dev_pem.size = crt_size; dev_pem.data = gnutls_malloc(dev_pem.size); - gnutls_x509_crt_export(dev_cert, GNUTLS_X509_FMT_PEM, dev_pem.data, &dev_pem.size); + gnutls_x509_crt_export(dev_cert, GNUTLS_X509_FMT_PEM, dev_pem.data, &crt_size); + dev_pem.size = crt_size; /* now encode certificates for output */ *device_cert_b64 = g_base64_encode(dev_pem.data, dev_pem.size); @@ -583,7 +588,7 @@ ssize_t lockdownd_secuwrite(gnutls_transport_ptr_t transport, char *buffer, size lockdownd_client *control; control = (lockdownd_client*)transport; if (debug) printf("lockdownd_secuwrite() called\n"); - if (debug) printf("pre-send\nlength = %i\n", length); + if (debug) printf("pre-send\nlength = %zi\n", length); bytes = mux_send(control->connection, buffer, length); if (debug) printf("post-send\nsent %i bytes\n", bytes); if (debug) { @@ -602,7 +607,7 @@ ssize_t lockdownd_securead(gnutls_transport_ptr_t transport, char *buffer, size_ char *hackhackhack = NULL; lockdownd_client *control; control = (lockdownd_client*)transport; - if (debug) printf("lockdownd_securead() called\nlength = %i\n", length); + if (debug) printf("lockdownd_securead() called\nlength = %zi\n", length); // Buffering hack! Throw what we've got in our "buffer" into the stream first, then get more. if (control->gtls_buffer_hack_len > 0) { if (length > control->gtls_buffer_hack_len) { // If it's asking for more than we got @@ -633,7 +638,7 @@ ssize_t lockdownd_securead(gnutls_transport_ptr_t transport, char *buffer, size_ // End buffering hack! char *recv_buffer = (char*)malloc(sizeof(char) * (length * 1000)); // ensuring nothing stupid happens - if (debug) printf("pre-read\nclient wants %i bytes\n", length); + if (debug) printf("pre-read\nclient wants %zi bytes\n", length); bytes = mux_recv(control->connection, recv_buffer, (length * 1000)); if (debug) printf("post-read\nwe got %i bytes\n", bytes); if (debug && bytes < 0) { diff --git a/src/usbmux.c b/src/usbmux.c index d79ee47..83797dd 100644 --- a/src/usbmux.c +++ b/src/usbmux.c @@ -200,7 +200,7 @@ int mux_send(usbmux_connection *connection, const char *data, uint32 datalen) { memcpy(buffer+sizeof(usbmux_tcp_header), data, datalen); // We have a buffer full of data, we should now send it to the phone. - if (debug) printf("actually sending %i bytes of data at %x\n", sizeof(usbmux_tcp_header)+datalen, buffer); + if (debug) printf("actually sending %zi bytes of data at %p\n", sizeof(usbmux_tcp_header)+datalen, buffer); bytes = send_to_phone(connection->phone, buffer, sizeof(usbmux_tcp_header)+datalen); diff --git a/src/userpref.c b/src/userpref.c index cd29c43..49a3c45 100644 --- a/src/userpref.c +++ b/src/userpref.c @@ -20,6 +20,7 @@ */ #include <glib.h> +#include <glib/gprintf.h> #include <stdio.h> #include <string.h> #include "userpref.h" @@ -140,7 +141,7 @@ int store_device_public_key(char* public_key) g_io_channel_shutdown(file, TRUE, NULL); /* append device to list */ - gchar** new_devices_list = (gchar**)g_malloc(sizeof(gchar*)* (length + 2)); + const gchar** new_devices_list = (const gchar**)g_malloc(sizeof(gchar*)* (length + 2)); int i; for( i = 0; i < length; i++) new_devices_list[i] = devices_list[i]; |