X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Futils.c;h=d084db6c82e98aed3e1e880fea0ccc2f66ed4d1b;hb=62dbcd8559ef5d6b6b51372e1b58afd14a85140d;hp=8f66370a0529e6cfa9e242418202d0bb4779efe7;hpb=a2761258409c929d70fc23735dc7c1c47fe296c4;p=doldaconnect.git diff --git a/daemon/utils.c b/daemon/utils.c index 8f66370..d084db6 100644 --- a/daemon/utils.c +++ b/daemon/utils.c @@ -190,7 +190,7 @@ wchar_t *icsmbstowcs(char *mbs, char *charset, wchar_t *def) free(buf); if((buf = icmbstowcs(mbs, charset)) == NULL) { - if(*def == '~') + if((def != NULL) && (*def == L'~')) { flog(LOG_WARNING, "icsmbstowcs: could not convert wcs string into charset %s: %s", charset, strerror(errno)); def++; @@ -264,7 +264,7 @@ char *icswcstombs(wchar_t *wcs, char *charset, char *def) free(buf); if((buf = icwcstombs(wcs, charset)) == NULL) { - if(*def == '~') + if((def != NULL) && (*def == '~')) { flog(LOG_WARNING, "icswcstombs: could not convert mbs string from charset %s: %s", charset, strerror(errno)); def++; @@ -768,10 +768,15 @@ struct wcspair *newwcspair(wchar_t *key, wchar_t *val, struct wcspair **list) void freewcspair(struct wcspair *pair, struct wcspair **list) { - if(list != NULL) + struct wcspair *cur; + + for(cur = *list; cur != NULL; list = &(cur->next), cur = cur->next) { - if(*list == pair) - *list = pair->next; + if(cur == pair) + { + *list = cur->next; + break; + } } free(pair->key); free(pair->val);