projects
/
u
/
mdw
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Cleanups of the GSSAPI support. On Windows, standard GSS libraries
[u/mdw/putty]
/
mac
/
macstore.c
diff --git
a/mac/macstore.c
b/mac/macstore.c
index
74fa8d9
..
35f31bd
100644
(file)
--- a/
mac/macstore.c
+++ b/
mac/macstore.c
@@
-506,10
+506,10
@@
void *enum_settings_start(void) {
OSErr error;
struct enum_settings_state *state;
OSErr error;
struct enum_settings_state *state;
- state = s
afemalloc(sizeof(*state)
);
+ state = s
new(struct enum_settings_state
);
error = get_session_dir(kDontCreateFolder, &state->vRefNum, &state->dirID);
if (error != noErr) {
error = get_session_dir(kDontCreateFolder, &state->vRefNum, &state->dirID);
if (error != noErr) {
- s
afe
free(state);
+ sfree(state);
return NULL;
}
state->index = 1;
return NULL;
}
state->index = 1;
@@
-683,6
+683,7
@@
void store_host_key(const char *hostname, int port,
char *resname;
Str255 presname;
Handle resvalue;
char *resname;
Str255 presname;
Handle resvalue;
+ Handle reshandle;
int id;
/* Open the host key file */
int id;
/* Open the host key file */
@@
-708,7
+709,12
@@
void store_host_key(const char *hostname, int port,
UseResFile(keyrefnum);
resname = dupprintf("%s@%d:%s", keytype, port, hostname);
c2pstrcpy(presname, resname);
UseResFile(keyrefnum);
resname = dupprintf("%s@%d:%s", keytype, port, hostname);
c2pstrcpy(presname, resname);
-
+
+ reshandle = Get1NamedResource(FOUR_CHAR_CODE('TEXT'), presname);
+ if (reshandle != NULL) {
+ /* The resource exists, we're replacing a host key */
+ RemoveResource(reshandle);
+ }
error = PtrToHand(key, &resvalue, strlen(key));
if (error != noErr) goto out;
error = PtrToHand(key, &resvalue, strlen(key));
if (error != noErr) goto out;