diff options
Diffstat (limited to 'meta-gnome/recipes-support/libical/files/pthread-fix.patch')
| -rw-r--r-- | meta-gnome/recipes-support/libical/files/pthread-fix.patch | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/meta-gnome/recipes-support/libical/files/pthread-fix.patch b/meta-gnome/recipes-support/libical/files/pthread-fix.patch new file mode 100644 index 0000000000..aa7767f22d --- /dev/null +++ b/meta-gnome/recipes-support/libical/files/pthread-fix.patch | |||
| @@ -0,0 +1,52 @@ | |||
| 1 | New added pthread feathre leads some deadlock with some unlock code missing. | ||
| 2 | This patch fix it. | ||
| 3 | |||
| 4 | Signed-off-by: Zhai Edwin <edwin.zhai@intel.com> | ||
| 5 | |||
| 6 | Upstream-Status: Pending | ||
| 7 | |||
| 8 | Index: libical-0.47/src/libical/icaltimezone.c | ||
| 9 | =================================================================== | ||
| 10 | --- libical-0.47.orig/src/libical/icaltimezone.c 2011-12-16 13:42:25.000000000 +0800 | ||
| 11 | +++ libical-0.47/src/libical/icaltimezone.c 2011-12-16 14:16:25.000000000 +0800 | ||
| 12 | @@ -1773,7 +1773,7 @@ | ||
| 13 | filename = (char*) malloc (filename_len); | ||
| 14 | if (!filename) { | ||
| 15 | icalerror_set_errno(ICAL_NEWFAILED_ERROR); | ||
| 16 | - return; | ||
| 17 | + goto out; | ||
| 18 | } | ||
| 19 | |||
| 20 | snprintf (filename, filename_len, "%s/%s.ics", get_zone_directory(), | ||
| 21 | @@ -1783,7 +1783,7 @@ | ||
| 22 | free (filename); | ||
| 23 | if (!fp) { | ||
| 24 | icalerror_set_errno(ICAL_FILE_ERROR); | ||
| 25 | - return; | ||
| 26 | + goto out; | ||
| 27 | } | ||
| 28 | |||
| 29 | |||
| 30 | @@ -1807,7 +1807,7 @@ | ||
| 31 | |||
| 32 | if (!subcomp) { | ||
| 33 | icalerror_set_errno(ICAL_PARSE_ERROR); | ||
| 34 | - return; | ||
| 35 | + goto out; | ||
| 36 | } | ||
| 37 | |||
| 38 | icaltimezone_get_vtimezone_properties (zone, subcomp); | ||
| 39 | @@ -1817,10 +1817,12 @@ | ||
| 40 | icalcomponent_free(comp); | ||
| 41 | } | ||
| 42 | #endif | ||
| 43 | -#ifdef HAVE_PTHREAD | ||
| 44 | + | ||
| 45 | out: | ||
| 46 | +#ifdef HAVE_PTHREAD | ||
| 47 | pthread_mutex_unlock(&builtin_mutex); | ||
| 48 | #endif | ||
| 49 | + return; | ||
| 50 | } | ||
| 51 | |||
| 52 | |||
