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