From: Martin Stránský Subject: Fix crash in clipboard handling References: https://bugzilla.mozilla.org/show_bug.cgi?id=495392 diff --git a/widget/src/gtk2/nsClipboard.cpp b/widget/src/gtk2/nsClipboard.cpp --- a/widget/src/gtk2/nsClipboard.cpp +++ b/widget/src/gtk2/nsClipboard.cpp @@ -440,21 +440,21 @@ nsClipboard::HasDataMatchingFlavors(cons if (!strcmp(aFlavorList[i], kUnicodeMime) && gtk_selection_data_targets_include_text(selection_data)) { *_retval = PR_TRUE; break; } for (PRInt32 j = 0; j < n_targets; j++) { gchar *atom_name = gdk_atom_name(targets[j]); - if (!strcmp(atom_name, aFlavorList[i])) + if (!g_strcmp0(atom_name, aFlavorList[i])) *_retval = PR_TRUE; // X clipboard wants image/jpeg, not image/jpg - if (!strcmp(aFlavorList[i], kJPEGImageMime) && !strcmp(atom_name, "image/jpeg")) + if (!g_strcmp0(aFlavorList[i], kJPEGImageMime) && !g_strcmp0(atom_name, "image/jpeg")) *_retval = PR_TRUE; g_free(atom_name); if (*_retval) break; } } diff --git a/widget/src/gtk2/nsDragService.cpp b/widget/src/gtk2/nsDragService.cpp --- a/widget/src/gtk2/nsDragService.cpp +++ b/widget/src/gtk2/nsDragService.cpp @@ -796,46 +796,43 @@ nsDragService::IsDataFlavorSupported(con GList *tmp; for (tmp = mTargetDragContext->targets; tmp; tmp = tmp->next) { /* Bug 331198 */ GdkAtom atom = GDK_POINTER_TO_ATOM(tmp->data); gchar *name = NULL; name = gdk_atom_name(atom); PR_LOG(sDragLm, PR_LOG_DEBUG, ("checking %s against %s\n", name, aDataFlavor)); - if (name && (strcmp(name, aDataFlavor) == 0)) { + if (g_strcmp0(name, aDataFlavor) == 0) { PR_LOG(sDragLm, PR_LOG_DEBUG, ("good!\n")); *_retval = PR_TRUE; } // check for automatic text/uri-list -> text/x-moz-url mapping if (*_retval == PR_FALSE && - name && - (strcmp(name, gTextUriListType) == 0) && - (strcmp(aDataFlavor, kURLMime) == 0)) { + (g_strcmp0(name, gTextUriListType) == 0) && + (g_strcmp0(aDataFlavor, kURLMime) == 0)) { PR_LOG(sDragLm, PR_LOG_DEBUG, ("good! ( it's text/uri-list and \ we're checking against text/x-moz-url )\n")); *_retval = PR_TRUE; } // check for automatic _NETSCAPE_URL -> text/x-moz-url mapping if (*_retval == PR_FALSE && - name && - (strcmp(name, gMozUrlType) == 0) && - (strcmp(aDataFlavor, kURLMime) == 0)) { + (g_strcmp0(name, gMozUrlType) == 0) && + (g_strcmp0(aDataFlavor, kURLMime) == 0)) { PR_LOG(sDragLm, PR_LOG_DEBUG, ("good! ( it's _NETSCAPE_URL and \ we're checking against text/x-moz-url )\n")); *_retval = PR_TRUE; } // check for auto text/plain -> text/unicode mapping if (*_retval == PR_FALSE && - name && - (strcmp(name, kTextMime) == 0) && - ((strcmp(aDataFlavor, kUnicodeMime) == 0) || - (strcmp(aDataFlavor, kFileMime) == 0))) { + (g_strcmp0(name, kTextMime) == 0) && + ((g_strcmp0(aDataFlavor, kUnicodeMime) == 0) || + (g_strcmp0(aDataFlavor, kFileMime) == 0))) { PR_LOG(sDragLm, PR_LOG_DEBUG, ("good! ( it's text plain and we're checking \ against text/unicode or application/x-moz-file)\n")); *_retval = PR_TRUE; } g_free(name); } return NS_OK; @@ -946,17 +943,17 @@ nsDragService::IsTargetContextList(void) // walk the list of context targets and see if one of them is a list // of items. for (tmp = mTargetDragContext->targets; tmp; tmp = tmp->next) { /* Bug 331198 */ GdkAtom atom = GDK_POINTER_TO_ATOM(tmp->data); gchar *name = NULL; name = gdk_atom_name(atom); - if (strcmp(name, gMimeListType) == 0) + if (g_strcmp0(name, gMimeListType) == 0) retval = PR_TRUE; g_free(name); if (retval) break; } return retval; }