mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-02-13 11:42:21 +00:00
dtcreate: fix exit with TT_ERR_PTYPE and fix several sprintf related segfaults.
This commit is contained in:
parent
fdcbdbe0d0
commit
562da5af1b
4 changed files with 23 additions and 12 deletions
|
@ -261,6 +261,7 @@ static Widget _Uxbuild_AddFiletype(void)
|
|||
char *pre, *suf, *title;
|
||||
|
||||
XmString emptyString;
|
||||
size_t len;
|
||||
|
||||
#define TIGHTNESS 20
|
||||
#define ICON_MIN_HEIGHT 83
|
||||
|
@ -276,8 +277,9 @@ static Widget _Uxbuild_AddFiletype(void)
|
|||
|
||||
pre = GETMESSAGE(3, 10, "Create Action");
|
||||
suf = GETMESSAGE(7, 10, "Add Datatype");
|
||||
title = XtMalloc(strlen(pre) + strlen(suf) + 2);
|
||||
sprintf(title, "%s - %s", pre, suf);
|
||||
len = strlen(pre) + strlen(suf) + 4;
|
||||
title = XtMalloc(len);
|
||||
snprintf(title,len - 1, "%s - %s", pre, suf);
|
||||
|
||||
_UxParent = XtVaCreatePopupShell( "AddFiletype_shell",
|
||||
xmDialogShellWidgetClass, _UxParent,
|
||||
|
|
|
@ -345,6 +345,7 @@ static void activateCB_CA_FiletypesDelete( Widget UxWidget,
|
|||
int cnt;
|
||||
Boolean bFound;
|
||||
char *msgPtr1, *msgPtr2, *fmtPtr, *errPtr;
|
||||
size_t len;
|
||||
|
||||
/**************************************************************************/
|
||||
/* Determine the filetypes to delete and delete them. */
|
||||
|
@ -411,9 +412,9 @@ static void activateCB_CA_FiletypesDelete( Widget UxWidget,
|
|||
msgPtr2 = XtNewString(GETMESSAGE(5, 125,
|
||||
"Please select the Datatype you would like to Delete."));
|
||||
fmtPtr = "%s\n%s";
|
||||
errPtr = XtMalloc((strlen(msgPtr1) + strlen(msgPtr2) +
|
||||
strlen(fmtPtr) + 1) * sizeof(char));
|
||||
sprintf(errPtr, fmtPtr, msgPtr1, msgPtr2);
|
||||
len = (strlen(msgPtr1) + strlen(msgPtr2) + strlen(fmtPtr) + 2);
|
||||
errPtr = XtMalloc(len);
|
||||
snprintf(errPtr,len - 1, fmtPtr, msgPtr1, msgPtr2);
|
||||
XtFree(msgPtr2);
|
||||
XtFree(msgPtr1);
|
||||
display_error_message(CreateActionAppShell, errPtr);
|
||||
|
|
|
@ -849,6 +849,7 @@ void activateCB_add_filetype (Widget wid, XtPointer client_data,
|
|||
char *ptr;
|
||||
char tmpbuf[50];
|
||||
char *pre, *suf, *title;
|
||||
size_t len;
|
||||
|
||||
if (!CreateActionAppShellCheckFields()) {
|
||||
|
||||
|
@ -893,8 +894,9 @@ void activateCB_add_filetype (Widget wid, XtPointer client_data,
|
|||
|
||||
pre = GETMESSAGE(3, 10, "Create Action");
|
||||
suf = GETMESSAGE(7, 10, "Add Datatype");
|
||||
title = XtMalloc(strlen(pre) + strlen(suf) + 2);
|
||||
sprintf(title, "%s - %s", pre, suf);
|
||||
len = strlen(pre) + strlen(suf) + 4;
|
||||
title = XtMalloc(len);
|
||||
snprintf(title,len - 1,"%s - %s", pre, suf);
|
||||
|
||||
XtVaSetValues (AddFiletype,
|
||||
RES_CONVERT (XmNdialogTitle, title ),
|
||||
|
@ -924,11 +926,13 @@ void activateCB_edit_filetype (Widget wid, XtPointer client_data,
|
|||
int selecteditem;
|
||||
char *msgPtr1, *msgPtr2, *fmtPtr, *errPtr;
|
||||
char *pre, *suf, *title;
|
||||
size_t len;
|
||||
|
||||
pre = GETMESSAGE(3, 10, "Create Action");
|
||||
suf = GETMESSAGE(7, 11, "Edit Datatype");
|
||||
title = XtMalloc(strlen(pre) + strlen(suf) + 2);
|
||||
sprintf(title, "%s - %s", pre, suf);
|
||||
len = strlen(pre) + strlen(suf) + 4;
|
||||
title = XtMalloc(len);
|
||||
snprintf(title,len - 1, "%s - %s", pre, suf);
|
||||
|
||||
/**************************************************************************/
|
||||
/* Determine the selected list item. */
|
||||
|
@ -959,9 +963,10 @@ void activateCB_edit_filetype (Widget wid, XtPointer client_data,
|
|||
msgPtr2 = XtNewString(GETMESSAGE(5, 130,
|
||||
"Please select the Datatype you would like to Edit."));
|
||||
fmtPtr = "%s\n%s";
|
||||
errPtr = XtMalloc((strlen(msgPtr1) + strlen(msgPtr2) +
|
||||
strlen(fmtPtr) + 1) * sizeof(char));
|
||||
sprintf(errPtr, fmtPtr, msgPtr1, msgPtr2);
|
||||
len = (strlen(msgPtr1) + strlen(msgPtr2) +
|
||||
strlen(fmtPtr) + 3);
|
||||
errPtr = XtMalloc(len);
|
||||
snprintf(errPtr,len - 1, fmtPtr, msgPtr1, msgPtr2);
|
||||
XtFree(msgPtr2);
|
||||
XtFree(msgPtr1);
|
||||
display_error_message(CreateActionAppShell, errPtr);
|
||||
|
|
|
@ -548,6 +548,9 @@ DieFromToolTalkError(Widget parent, char *errfmt, Tt_status status)
|
|||
if (! tt_is_err(status)) return;
|
||||
|
||||
statmsg = tt_status_message(status);
|
||||
/* Solaris dtcreate ignores this so we should too */
|
||||
if(!strncmp("TT_ERR_PTYPE",statmsg,12))
|
||||
return;
|
||||
errmsg = XtMalloc(strlen(errfmt) + strlen(statmsg) + 2);
|
||||
sprintf(errmsg, errfmt, statmsg);
|
||||
|
||||
|
|
Loading…
Reference in a new issue