qt-firefox-gcc34.patch (fix cast) [pld-cvs-commit Digest, Vol 6, Issue 600]

Paweł Sikora pluto w pld-linux.org
Wto, 30 Lis 2004, 13:42:40 CET


On Sunday 28 of November 2004 21:07, pld-cvs-commit-request w pld-linux.org 
wrote:

+--- security/manager/ssl/src/nsPKCS12Blob.cpp.orig
++++ security/manager/ssl/src/nsPKCS12Blob.cpp
+@@ -187,7 +187,7 @@
+   mToken->GetTokenName(getter_Copies(tokenName));
+   {
+     NS_ConvertUTF16toUTF8 tokenNameCString(tokenName);
+-    slot = PK11_FindSlotByName(tokenNameCString.get());
++    slot = PK11_FindSlotByName(NS_CONST_CAST(char*,tokenNameCString.get()));
+   }
+   if (!slot) {
+     srv = SECFailure;

to rozwiązanie, to tylko bardzo brzydki hack.
zdjecie atrybutu const z obiektu poprzez...

nscore.h:
#define NS_CONST_CAST(__type, __ptr) const_cast< __type >(__ptr)

...i pierwsza proba modyfikacji obiektu przez funkcję PK11_FindSlotByName
może zakończyć się ubiciem aplikacji ponieważ kompilator może umieszczać
stałe obiekty w obszarach pamięci chronionych przed modyfikacją
(to już zależy od platformy i specyficznej implementacji).
jeśli PK11... nie modyfikuje obiektu, to powinna pobierać stały wskaźnik,
bądź referencję i to ją należy poprawić, a nie dorabiać chore rzutowanie.

-- 
/* Copyright (C) 2003, SCO, Inc. This is valuable Intellectual Property. */

                           #define say(x) lie(x)




Więcej informacji o liście dyskusyjnej pld-devel-pl