diff options
-rw-r--r-- | rbutil/ipodpatcher/ipodio-posix.c | 10 | ||||
-rw-r--r-- | rbutil/ipodpatcher/ipodio-win32.c | 13 | ||||
-rw-r--r-- | rbutil/ipodpatcher/ipodio.h | 1 | ||||
-rw-r--r-- | rbutil/ipodpatcher/main.c | 1 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/autodetection.cpp | 3 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/bootloaderinstallipod.cpp | 3 |
6 files changed, 27 insertions, 4 deletions
diff --git a/rbutil/ipodpatcher/ipodio-posix.c b/rbutil/ipodpatcher/ipodio-posix.c index 377510912a..59cbc0188e 100644 --- a/rbutil/ipodpatcher/ipodio-posix.c +++ b/rbutil/ipodpatcher/ipodio-posix.c | |||
@@ -367,6 +367,16 @@ int ipod_alloc_buffer(struct ipod_t* ipod, int bufsize) | |||
367 | return 0; | 367 | return 0; |
368 | } | 368 | } |
369 | 369 | ||
370 | int ipod_dealloc_buffer(struct ipod_t* ipod) | ||
371 | { | ||
372 | if (ipod->sectorbuf == NULL) { | ||
373 | return -1; | ||
374 | } | ||
375 | free(ipod->sectorbuf); | ||
376 | ipod->sectorbuf = NULL; | ||
377 | return 0; | ||
378 | } | ||
379 | |||
370 | int ipod_seek(struct ipod_t* ipod, unsigned long pos) | 380 | int ipod_seek(struct ipod_t* ipod, unsigned long pos) |
371 | { | 381 | { |
372 | off_t res; | 382 | off_t res; |
diff --git a/rbutil/ipodpatcher/ipodio-win32.c b/rbutil/ipodpatcher/ipodio-win32.c index d4bdbf0173..cea218774a 100644 --- a/rbutil/ipodpatcher/ipodio-win32.c +++ b/rbutil/ipodpatcher/ipodio-win32.c | |||
@@ -170,6 +170,19 @@ int ipod_alloc_buffer(struct ipod_t* ipod, int bufsize) | |||
170 | return 0; | 170 | return 0; |
171 | } | 171 | } |
172 | 172 | ||
173 | int ipod_dealloc_buffer(struct ipod_t* ipod) | ||
174 | { | ||
175 | if (ipod->sectorbuf == NULL) { | ||
176 | return -1; | ||
177 | } | ||
178 | if(!VirtualFree(ipod->sectorbuf, 0, MEM_RELEASE)) { | ||
179 | ipod_print_error(" Error releasing buffer "); | ||
180 | return -1; | ||
181 | } | ||
182 | ipod->sectorbuf = NULL; | ||
183 | return 0; | ||
184 | } | ||
185 | |||
173 | int ipod_seek(struct ipod_t* ipod, unsigned long pos) | 186 | int ipod_seek(struct ipod_t* ipod, unsigned long pos) |
174 | { | 187 | { |
175 | if (SetFilePointer(ipod->dh, pos, NULL, FILE_BEGIN)==0xffffffff) { | 188 | if (SetFilePointer(ipod->dh, pos, NULL, FILE_BEGIN)==0xffffffff) { |
diff --git a/rbutil/ipodpatcher/ipodio.h b/rbutil/ipodpatcher/ipodio.h index 8a2f06cf20..4f1a35dd09 100644 --- a/rbutil/ipodpatcher/ipodio.h +++ b/rbutil/ipodpatcher/ipodio.h | |||
@@ -107,6 +107,7 @@ int ipod_scsi_inquiry(struct ipod_t* ipod, int page_code, | |||
107 | ssize_t ipod_read(struct ipod_t* ipod, int nbytes); | 107 | ssize_t ipod_read(struct ipod_t* ipod, int nbytes); |
108 | ssize_t ipod_write(struct ipod_t* ipod, int nbytes); | 108 | ssize_t ipod_write(struct ipod_t* ipod, int nbytes); |
109 | int ipod_alloc_buffer(struct ipod_t* ipod, int bufsize); | 109 | int ipod_alloc_buffer(struct ipod_t* ipod, int bufsize); |
110 | int ipod_dealloc_buffer(struct ipod_t* ipod); | ||
110 | 111 | ||
111 | /* In fat32format.c */ | 112 | /* In fat32format.c */ |
112 | int format_partition(struct ipod_t* ipod, int partition); | 113 | int format_partition(struct ipod_t* ipod, int partition); |
diff --git a/rbutil/ipodpatcher/main.c b/rbutil/ipodpatcher/main.c index 12c38de704..e82fbf53f3 100644 --- a/rbutil/ipodpatcher/main.c +++ b/rbutil/ipodpatcher/main.c | |||
@@ -614,5 +614,6 @@ int main(int argc, char* argv[]) | |||
614 | } | 614 | } |
615 | #endif | 615 | #endif |
616 | 616 | ||
617 | ipod_dealloc_buffer(&ipod); | ||
617 | return 0; | 618 | return 0; |
618 | } | 619 | } |
diff --git a/rbutil/rbutilqt/base/autodetection.cpp b/rbutil/rbutilqt/base/autodetection.cpp index a453fa8d60..e57c4542d0 100644 --- a/rbutil/rbutilqt/base/autodetection.cpp +++ b/rbutil/rbutilqt/base/autodetection.cpp | |||
@@ -162,8 +162,7 @@ bool Autodetection::detect() | |||
162 | else { | 162 | else { |
163 | qDebug() << "[Autodetect] ipodpatcher: no Ipod found." << n; | 163 | qDebug() << "[Autodetect] ipodpatcher: no Ipod found." << n; |
164 | } | 164 | } |
165 | free(ipod.sectorbuf); | 165 | ipod_dealloc_buffer(&ipod); |
166 | ipod.sectorbuf = NULL; | ||
167 | 166 | ||
168 | // try sansapatcher | 167 | // try sansapatcher |
169 | // initialize sector buffer. Needed. | 168 | // initialize sector buffer. Needed. |
diff --git a/rbutil/rbutilqt/base/bootloaderinstallipod.cpp b/rbutil/rbutilqt/base/bootloaderinstallipod.cpp index 3d90663392..de7aaa897b 100644 --- a/rbutil/rbutilqt/base/bootloaderinstallipod.cpp +++ b/rbutil/rbutilqt/base/bootloaderinstallipod.cpp | |||
@@ -37,8 +37,7 @@ BootloaderInstallIpod::BootloaderInstallIpod(QObject *parent) | |||
37 | BootloaderInstallIpod::~BootloaderInstallIpod() | 37 | BootloaderInstallIpod::~BootloaderInstallIpod() |
38 | { | 38 | { |
39 | if(ipod.sectorbuf) { | 39 | if(ipod.sectorbuf) { |
40 | free(ipod.sectorbuf); | 40 | ipod_dealloc_buffer(&ipod); |
41 | ipod.sectorbuf = NULL; | ||
42 | } | 41 | } |
43 | } | 42 | } |
44 | 43 | ||