@@ -736,7 +736,7 @@ char* TcpFilter::patternToStr(const TcpFilter::Pattern& p) { | |||
buffer + 1, sizeof (buffer) - 2, NULL, 0, NI_NUMERICHOST); | |||
strcat(buffer, "]"); | |||
addr.buf = rfb::strDup(buffer); | |||
} else if (p.address.u.sa.sa_family == AF_UNSPEC) | |||
} else | |||
addr.buf = rfb::strDup(""); | |||
char action; |
@@ -95,9 +95,9 @@ void CSecurityTLS::setDefaults() | |||
delete [] homeDir; | |||
if (!fileexists(caDefault.buf)) | |||
X509CA.setDefaultStr(strdup(caDefault.buf)); | |||
X509CA.setDefaultStr(caDefault.buf); | |||
if (!fileexists(crlDefault.buf)) | |||
X509CRL.setDefaultStr(strdup(crlDefault.buf)); | |||
X509CRL.setDefaultStr(crlDefault.buf); | |||
} | |||
void CSecurityTLS::shutdown(bool needbye) |
@@ -41,7 +41,7 @@ StringParameter PasswordValidator::plainUsers | |||
bool PasswordValidator::validUser(const char* username) | |||
{ | |||
CharArray users(strDup(plainUsers.getValueStr())), user; | |||
CharArray users(plainUsers.getValueStr()), user; | |||
while (users.buf) { | |||
strSplit(users.buf, ',', &user.buf, &users.buf); |
@@ -24,6 +24,7 @@ | |||
#include <list> | |||
#include <stdio.h> | |||
#include <stdlib.h> | |||
#include <vector> | |||
#include <rfb/util.h> | |||
std::list<TXWindow*> windows; | |||
@@ -132,20 +133,20 @@ TXGlobalEventHandler* TXWindow::setGlobalEventHandler(TXGlobalEventHandler* h) | |||
void TXWindow::getColours(Display* dpy, XColor* cols, int nCols) | |||
{ | |||
bool* got = new bool[nCols]; | |||
std::vector<bool> got; | |||
bool failed = false; | |||
int i; | |||
for (i = 0; i < nCols; i++) { | |||
if (XAllocColor(dpy, cmap, &cols[i])) { | |||
got[i] = true; | |||
got.push_back(true); | |||
} else { | |||
got[i] = false; | |||
got.push_back(false); | |||
failed = true; | |||
} | |||
} | |||
if (!failed) { | |||
delete [] got; | |||
return; | |||
} | |||
@@ -168,12 +169,13 @@ void TXWindow::getColours(Display* dpy, XColor* cols, int nCols) | |||
int cmapSize = DisplayCells(dpy,DefaultScreen(dpy)); | |||
XColor* cm = new XColor[cmapSize]; | |||
bool* shared = new bool[cmapSize]; | |||
bool* usedAsNearest = new bool[cmapSize]; | |||
std::vector<bool> shared; | |||
std::vector<bool> usedAsNearest; | |||
for (i = 0; i < cmapSize; i++) { | |||
cm[i].pixel = i; | |||
shared[i] = usedAsNearest[i] = false; | |||
shared.push_back(false); | |||
usedAsNearest.push_back(false); | |||
} | |||
XQueryColors(dpy, cmap, cm, cmapSize); |
@@ -134,7 +134,7 @@ int main(int argc, char** argv) | |||
} else if (argv[i][0] == '-') { | |||
usage(); | |||
} else if (!fname) { | |||
fname = argv[i]; | |||
fname = strDup(argv[i]); | |||
} else { | |||
usage(); | |||
} | |||
@@ -165,24 +165,37 @@ int main(int argc, char** argv) | |||
FILE* fp = fopen(fname,"w"); | |||
if (!fp) { | |||
fprintf(stderr,"Couldn't open %s for writing\n",fname); | |||
delete [] fname; | |||
delete obfuscated; | |||
delete obfuscatedReadOnly; | |||
exit(1); | |||
} | |||
chmod(fname, S_IRUSR|S_IWUSR); | |||
if (fwrite(obfuscated->buf, obfuscated->length, 1, fp) != 1) { | |||
fprintf(stderr,"Writing to %s failed\n",fname); | |||
delete [] fname; | |||
delete obfuscated; | |||
delete obfuscatedReadOnly; | |||
exit(1); | |||
} | |||
delete obfuscated; | |||
if (obfuscatedReadOnly) { | |||
if (fwrite(obfuscatedReadOnly->buf, obfuscatedReadOnly->length, 1, fp) != 1) { | |||
fprintf(stderr,"Writing to %s failed\n",fname); | |||
delete [] fname; | |||
delete obfuscatedReadOnly; | |||
exit(1); | |||
} | |||
} | |||
fclose(fp); | |||
delete [] fname; | |||
delete obfuscatedReadOnly; | |||
return 0; | |||
} | |||
} |
@@ -179,7 +179,7 @@ void vncExtensionInit(void) | |||
listeners.push_back(new network::TcpListener(vncInetdSock)); | |||
vlog.info("inetd wait"); | |||
} | |||
} else if (rfbunixpath.getValueStr()[0] != '\0') { | |||
} else if (((const char*)rfbunixpath)[0] != '\0') { | |||
char path[PATH_MAX]; | |||
int mode = (int)rfbunixmode; | |||
@@ -187,7 +187,7 @@ void vncExtensionInit(void) | |||
strncpy(path, rfbunixpath, sizeof(path)); | |||
else | |||
snprintf(path, sizeof(path), "%s.%d", | |||
rfbunixpath.getValueStr(), scr); | |||
(const char*)rfbunixpath, scr); | |||
path[sizeof(path)-1] = '\0'; | |||
listeners.push_back(new network::UnixListener(path, mode)); |
@@ -105,7 +105,7 @@ void vncClientCutText(const char* str, int len) | |||
LOG_ERROR("Could not set PRIMARY selection"); | |||
} | |||
vncOwnSelection(xaCLIPBOARD); | |||
rc = vncOwnSelection(xaCLIPBOARD); | |||
if (rc != Success) | |||
LOG_ERROR("Could not set CLIPBOARD selection"); | |||
} |
@@ -766,10 +766,13 @@ vfbUninstallColormap(ColormapPtr pmap) | |||
curpmap = (ColormapPtr) LookupIDByType(pmap->pScreen->defColormap, | |||
RT_COLORMAP); | |||
#else | |||
dixLookupResourceByType((void * *) &curpmap, pmap->pScreen->defColormap, | |||
RT_COLORMAP, serverClient, DixUnknownAccess); | |||
int rc = dixLookupResourceByType((void * *) &curpmap, pmap->pScreen->defColormap, | |||
RT_COLORMAP, serverClient, DixUnknownAccess); | |||
if (rc != Success) | |||
ErrorF("Failed to uninstall color map\n"); | |||
else | |||
#endif | |||
(*pmap->pScreen->InstallColormap)(curpmap); | |||
(*pmap->pScreen->InstallColormap)(curpmap); | |||
} | |||
} | |||
} |
@@ -103,12 +103,12 @@ DesktopWindow::DesktopWindow(int w, int h, const char *name, | |||
int geom_x = 0, geom_y = 0; | |||
if (strcmp(geometry, "") != 0) { | |||
int matched; | |||
matched = sscanf(geometry.getValueStr(), "+%d+%d", &geom_x, &geom_y); | |||
matched = sscanf((const char*)geometry, "+%d+%d", &geom_x, &geom_y); | |||
if (matched == 2) { | |||
force_position(1); | |||
} else { | |||
int geom_w, geom_h; | |||
matched = sscanf(geometry.getValueStr(), "%dx%d+%d+%d", &geom_w, &geom_h, &geom_x, &geom_y); | |||
matched = sscanf((const char*)geometry, "%dx%d+%d+%d", &geom_w, &geom_h, &geom_x, &geom_y); | |||
switch (matched) { | |||
case 4: | |||
force_position(1); |
@@ -282,7 +282,7 @@ void OptionsDialog::loadOptions(void) | |||
/* Screen */ | |||
int width, height; | |||
if (sscanf(desktopSize.getValueStr(), "%dx%d", &width, &height) != 2) { | |||
if (sscanf((const char*)desktopSize, "%dx%d", &width, &height) != 2) { | |||
desktopSizeCheckbox->value(false); | |||
desktopWidthInput->value("1024"); | |||
desktopHeightInput->value("768"); |
@@ -150,7 +150,7 @@ void ServerDialog::handleLoad(Fl_Widget *widget, void *data) | |||
return; | |||
} | |||
const char* filename = strdup(file_chooser->value()); | |||
const char* filename = file_chooser->value(); | |||
try { | |||
dialog->serverName->value(loadViewerParameters(filename)); | |||
@@ -165,8 +165,8 @@ void ServerDialog::handleLoad(Fl_Widget *widget, void *data) | |||
void ServerDialog::handleSaveAs(Fl_Widget *widget, void *data) | |||
{ | |||
ServerDialog *dialog = (ServerDialog*)data; | |||
const char* servername = strdup(dialog->serverName->value()); | |||
char* filename; | |||
const char* servername = dialog->serverName->value(); | |||
const char* filename; | |||
Fl_File_Chooser* file_chooser = new Fl_File_Chooser("", _("TigerVNC configuration (*.tigervnc)"), | |||
2, _("Save the TigerVNC configuration to file")); | |||
@@ -187,7 +187,7 @@ void ServerDialog::handleSaveAs(Fl_Widget *widget, void *data) | |||
return; | |||
} | |||
filename = strdup(file_chooser->value()); | |||
filename = file_chooser->value(); | |||
FILE* f = fopen(filename, "r"); | |||
if (f) { | |||
@@ -235,7 +235,7 @@ void ServerDialog::handleCancel(Fl_Widget *widget, void *data) | |||
void ServerDialog::handleConnect(Fl_Widget *widget, void *data) | |||
{ | |||
ServerDialog *dialog = (ServerDialog*)data; | |||
const char* servername = strdup(dialog->serverName->value()); | |||
const char* servername = dialog->serverName->value(); | |||
dialog->hide(); | |||
@@ -499,6 +499,7 @@ void saveViewerParameters(const char *filename, const char *servername) { | |||
} | |||
snprintf(filepath, sizeof(filepath), "%sdefault.tigervnc", homeDir); | |||
free(homeDir); | |||
} else { | |||
snprintf(filepath, sizeof(filepath), "%s", filename); | |||
} | |||
@@ -555,6 +556,7 @@ char* loadViewerParameters(const char *filename) { | |||
"can't obtain home directory path.")); | |||
snprintf(filepath, sizeof(filepath), "%sdefault.tigervnc", homeDir); | |||
free(homeDir); | |||
} else { | |||
snprintf(filepath, sizeof(filepath), "%s", filename); | |||
} |
@@ -479,9 +479,9 @@ static int mktunnel() | |||
int localPort = findFreeTcpPort(); | |||
int remotePort; | |||
gatewayHost = strDup(via.getValueStr()); | |||
if (interpretViaParam(remoteHost, &remotePort, localPort) != 0) | |||
return 1; | |||
gatewayHost = (const char*)via; | |||
createTunnel(gatewayHost, remoteHost, remotePort, localPort); | |||
return 0; |