Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
L
libplist
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
pwn
libplist
Commits
eea92259
Commit
eea92259
authored
Aug 10, 2008
by
Christophe Fergeau
Committed by
Matt Colyer
Aug 11, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix compilation with gcc 4.3 -Wall -Werror -Wno-pointer-sign
Signed-off-by:
Matt Colyer
<
matt@colyer.name
>
parent
32345982
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
37 additions
and
21 deletions
+37
-21
AFC.c
src/AFC.c
+2
-2
ifuse.c
src/ifuse.c
+1
-2
initconf.c
src/initconf.c
+18
-8
iphone.c
src/iphone.c
+3
-2
lockdown.c
src/lockdown.c
+10
-5
usbmux.c
src/usbmux.c
+1
-1
userpref.c
src/userpref.c
+2
-1
No files found.
src/AFC.c
View file @
eea92259
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
*/
*/
#include "AFC.h"
#include "AFC.h"
#include "plist.h"
// This is the maximum size an AFC data packet can be
// This is the maximum size an AFC data packet can be
const
int
MAXIMUM_PACKET_SIZE
=
(
2
<<
15
)
-
32
;
const
int
MAXIMUM_PACKET_SIZE
=
(
2
<<
15
)
-
32
;
...
@@ -211,7 +211,7 @@ static int receive_AFC_data(AFClient *client, char **dump_here) {
...
@@ -211,7 +211,7 @@ static int receive_AFC_data(AFClient *client, char **dump_here) {
break
;
break
;
}
}
if
(
strstr
(
buffer
,
"CFA6LPAA"
))
{
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 %
t
i
\n
"
,
strstr
(
buffer
,
"CFA6LPAA"
)
-
buffer
);
if
(
debug
)
printf
(
"receive_AFC_data: the total packet length is %i
\n
"
,
bytes
);
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
//continue; // but we do need to continue because packets/headers != data
}
}
...
...
src/ifuse.c
View file @
eea92259
...
@@ -194,7 +194,7 @@ void *ifuse_init(struct fuse_conn_info *conn) {
...
@@ -194,7 +194,7 @@ void *ifuse_init(struct fuse_conn_info *conn) {
}
}
host_id
=
get_host_id
();
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
"
);
fprintf
(
stderr
,
"Something went wrong in GnuTLS. Is your HostID configured in .config/libiphone/libiphonerc?
\n
"
);
return
NULL
;
return
NULL
;
}
}
...
@@ -263,7 +263,6 @@ int ifuse_truncate(const char *path, off_t size) {
...
@@ -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
ifuse_ftruncate
(
const
char
*
path
,
off_t
size
,
struct
fuse_file_info
*
fi
)
{
int
result
=
0
;
AFClient
*
afc
=
fuse_get_context
()
->
private_data
;
AFClient
*
afc
=
fuse_get_context
()
->
private_data
;
AFCFile
*
file
=
g_hash_table_lookup
(
file_handles
,
&
fi
->
fh
);
AFCFile
*
file
=
g_hash_table_lookup
(
file_handles
,
&
fi
->
fh
);
if
(
!
file
)
return
-
ENOENT
;
if
(
!
file
)
return
-
ENOENT
;
...
...
src/initconf.c
View file @
eea92259
...
@@ -22,6 +22,7 @@
...
@@ -22,6 +22,7 @@
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
#include <gnutls/gnutls.h>
#include <gnutls/gnutls.h>
#include <gnutls/x509.h>
#include <glib.h>
#include <glib.h>
#include "userpref.h"
#include "userpref.h"
...
@@ -54,6 +55,7 @@ int main(int argc, char *argv[]) {
...
@@ -54,6 +55,7 @@ int main(int argc, char *argv[]) {
gnutls_global_init
();
gnutls_global_init
();
size_t
size
;
char
*
host_id
=
NULL
;
//"29942970-207913891623273984"
char
*
host_id
=
NULL
;
//"29942970-207913891623273984"
gnutls_x509_privkey_t
root_privkey
;
gnutls_x509_privkey_t
root_privkey
;
gnutls_x509_privkey_t
host_privkey
;
gnutls_x509_privkey_t
host_privkey
;
...
@@ -99,26 +101,34 @@ int main(int argc, char *argv[]) {
...
@@ -99,26 +101,34 @@ int main(int argc, char *argv[]) {
gnutls_datum_t
root_key_pem
=
{
NULL
,
0
};
gnutls_datum_t
root_key_pem
=
{
NULL
,
0
};
gnutls_datum_t
host_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
(
root_privkey
,
GNUTLS_X509_FMT_PEM
,
NULL
,
&
size
);
gnutls_x509_privkey_export
(
host_privkey
,
GNUTLS_X509_FMT_PEM
,
NULL
,
&
host_key_pem
.
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
);
root_key_pem
.
data
=
gnutls_malloc
(
root_key_pem
.
size
);
host_key_pem
.
data
=
gnutls_malloc
(
host_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
(
root_privkey
,
GNUTLS_X509_FMT_PEM
,
root_key_pem
.
data
,
&
size
);
gnutls_x509_privkey_export
(
host_privkey
,
GNUTLS_X509_FMT_PEM
,
host_key_pem
.
data
,
&
host_key_pem
.
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
root_cert_pem
=
{
NULL
,
0
};
gnutls_datum_t
host_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
(
root_cert
,
GNUTLS_X509_FMT_PEM
,
NULL
,
&
size
);
gnutls_x509_crt_export
(
host_cert
,
GNUTLS_X509_FMT_PEM
,
NULL
,
&
host_cert_pem
.
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
);
root_cert_pem
.
data
=
gnutls_malloc
(
root_cert_pem
.
size
);
host_cert_pem
.
data
=
gnutls_malloc
(
host_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
(
root_cert
,
GNUTLS_X509_FMT_PEM
,
root_cert_pem
.
data
,
&
size
);
gnutls_x509_crt_export
(
host_cert
,
GNUTLS_X509_FMT_PEM
,
host_cert_pem
.
data
,
&
host_cert_pem
.
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 */
/* store values in config file */
...
...
src/iphone.c
View file @
eea92259
...
@@ -21,6 +21,7 @@
...
@@ -21,6 +21,7 @@
#include "usbmux.h"
#include "usbmux.h"
#include "iphone.h"
#include "iphone.h"
#include <arpa/inet.h>
#include <usb.h>
#include <usb.h>
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
...
@@ -141,13 +142,13 @@ int send_to_phone(iPhone *phone, char *data, int datalen) {
...
@@ -141,13 +142,13 @@ int send_to_phone(iPhone *phone, char *data, int datalen) {
if
(
!
phone
)
return
-
1
;
if
(
!
phone
)
return
-
1
;
int
bytes
=
0
;
int
bytes
=
0
;
// it may die here
// it may die here
if
(
debug
)
printf
(
"dying here?
\n
datalen = %i
\n
data = %
x
\n
"
,
datalen
,
data
);
if
(
debug
)
printf
(
"dying here?
\n
datalen = %i
\n
data = %
p
\n
"
,
datalen
,
data
);
bytes
=
usb_bulk_write
(
phone
->
device
,
BULKOUT
,
data
,
datalen
,
800
);
bytes
=
usb_bulk_write
(
phone
->
device
,
BULKOUT
,
data
,
datalen
,
800
);
if
(
debug
)
printf
(
"noooo...?
\n
"
);
if
(
debug
)
printf
(
"noooo...?
\n
"
);
if
(
bytes
<
datalen
)
{
if
(
bytes
<
datalen
)
{
if
(
debug
&&
bytes
<
0
)
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
;
return
-
1
;
}
else
{
}
else
{
return
bytes
;
return
bytes
;
...
...
src/lockdown.c
View file @
eea92259
...
@@ -23,10 +23,12 @@
...
@@ -23,10 +23,12 @@
#include "iphone.h"
#include "iphone.h"
#include "lockdown.h"
#include "lockdown.h"
#include "userpref.h"
#include "userpref.h"
#include <arpa/inet.h>
#include <errno.h>
#include <errno.h>
#include <string.h>
#include <string.h>
#include <glib.h>
#include <glib.h>
#include <libtasn1.h>
#include <libtasn1.h>
#include <gnutls/x509.h>
extern
int
debug
;
extern
int
debug
;
...
@@ -446,9 +448,12 @@ int lockdownd_gen_pair_cert(char *public_key_b64, char **device_cert_b64, char *
...
@@ -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 */
/* if everything went well, export in PEM format */
gnutls_datum_t
dev_pem
=
{
NULL
,
0
};
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
);
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 */
/* now encode certificates for output */
*
device_cert_b64
=
g_base64_encode
(
dev_pem
.
data
,
dev_pem
.
size
);
*
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
...
@@ -583,7 +588,7 @@ ssize_t lockdownd_secuwrite(gnutls_transport_ptr_t transport, char *buffer, size
lockdownd_client
*
control
;
lockdownd_client
*
control
;
control
=
(
lockdownd_client
*
)
transport
;
control
=
(
lockdownd_client
*
)
transport
;
if
(
debug
)
printf
(
"lockdownd_secuwrite() called
\n
"
);
if
(
debug
)
printf
(
"lockdownd_secuwrite() called
\n
"
);
if
(
debug
)
printf
(
"pre-send
\n
length = %i
\n
"
,
length
);
if
(
debug
)
printf
(
"pre-send
\n
length = %
z
i
\n
"
,
length
);
bytes
=
mux_send
(
control
->
connection
,
buffer
,
length
);
bytes
=
mux_send
(
control
->
connection
,
buffer
,
length
);
if
(
debug
)
printf
(
"post-send
\n
sent %i bytes
\n
"
,
bytes
);
if
(
debug
)
printf
(
"post-send
\n
sent %i bytes
\n
"
,
bytes
);
if
(
debug
)
{
if
(
debug
)
{
...
@@ -602,7 +607,7 @@ ssize_t lockdownd_securead(gnutls_transport_ptr_t transport, char *buffer, size_
...
@@ -602,7 +607,7 @@ ssize_t lockdownd_securead(gnutls_transport_ptr_t transport, char *buffer, size_
char
*
hackhackhack
=
NULL
;
char
*
hackhackhack
=
NULL
;
lockdownd_client
*
control
;
lockdownd_client
*
control
;
control
=
(
lockdownd_client
*
)
transport
;
control
=
(
lockdownd_client
*
)
transport
;
if
(
debug
)
printf
(
"lockdownd_securead() called
\n
length = %i
\n
"
,
length
);
if
(
debug
)
printf
(
"lockdownd_securead() called
\n
length = %
z
i
\n
"
,
length
);
// Buffering hack! Throw what we've got in our "buffer" into the stream first, then get more.
// 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
(
control
->
gtls_buffer_hack_len
>
0
)
{
if
(
length
>
control
->
gtls_buffer_hack_len
)
{
// If it's asking for more than we got
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_
...
@@ -633,7 +638,7 @@ ssize_t lockdownd_securead(gnutls_transport_ptr_t transport, char *buffer, size_
// End buffering hack!
// End buffering hack!
char
*
recv_buffer
=
(
char
*
)
malloc
(
sizeof
(
char
)
*
(
length
*
1000
));
// ensuring nothing stupid happens
char
*
recv_buffer
=
(
char
*
)
malloc
(
sizeof
(
char
)
*
(
length
*
1000
));
// ensuring nothing stupid happens
if
(
debug
)
printf
(
"pre-read
\n
client wants %i bytes
\n
"
,
length
);
if
(
debug
)
printf
(
"pre-read
\n
client wants %
z
i bytes
\n
"
,
length
);
bytes
=
mux_recv
(
control
->
connection
,
recv_buffer
,
(
length
*
1000
));
bytes
=
mux_recv
(
control
->
connection
,
recv_buffer
,
(
length
*
1000
));
if
(
debug
)
printf
(
"post-read
\n
we got %i bytes
\n
"
,
bytes
);
if
(
debug
)
printf
(
"post-read
\n
we got %i bytes
\n
"
,
bytes
);
if
(
debug
&&
bytes
<
0
)
{
if
(
debug
&&
bytes
<
0
)
{
...
...
src/usbmux.c
View file @
eea92259
...
@@ -200,7 +200,7 @@ int mux_send(usbmux_connection *connection, const char *data, uint32 datalen) {
...
@@ -200,7 +200,7 @@ int mux_send(usbmux_connection *connection, const char *data, uint32 datalen) {
memcpy
(
buffer
+
sizeof
(
usbmux_tcp_header
),
data
,
datalen
);
memcpy
(
buffer
+
sizeof
(
usbmux_tcp_header
),
data
,
datalen
);
// We have a buffer full of data, we should now send it to the phone.
// 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
);
bytes
=
send_to_phone
(
connection
->
phone
,
buffer
,
sizeof
(
usbmux_tcp_header
)
+
datalen
);
...
...
src/userpref.c
View file @
eea92259
...
@@ -20,6 +20,7 @@
...
@@ -20,6 +20,7 @@
*/
*/
#include <glib.h>
#include <glib.h>
#include <glib/gprintf.h>
#include <stdio.h>
#include <stdio.h>
#include <string.h>
#include <string.h>
#include "userpref.h"
#include "userpref.h"
...
@@ -140,7 +141,7 @@ int store_device_public_key(char* public_key)
...
@@ -140,7 +141,7 @@ int store_device_public_key(char* public_key)
g_io_channel_shutdown
(
file
,
TRUE
,
NULL
);
g_io_channel_shutdown
(
file
,
TRUE
,
NULL
);
/* append device to list */
/* 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
;
int
i
;
for
(
i
=
0
;
i
<
length
;
i
++
)
for
(
i
=
0
;
i
<
length
;
i
++
)
new_devices_list
[
i
]
=
devices_list
[
i
];
new_devices_list
[
i
]
=
devices_list
[
i
];
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment