Commit a1b0fdb2 authored by Alan Coopersmith's avatar Alan Coopersmith Committed by Ulrich Sibiller

xlibi18n: convert sprintf calls to snprintf

parent bde3d8b1
...@@ -189,12 +189,7 @@ resolve_object(char *path, const char *lc_name) ...@@ -189,12 +189,7 @@ resolve_object(char *path, const char *lc_name)
Xmalloc(sizeof(XI18NObjectsListRec) * lc_len); Xmalloc(sizeof(XI18NObjectsListRec) * lc_len);
if (!xi18n_objects_list) return; if (!xi18n_objects_list) return;
} }
/* snprintf(filename, sizeof(filename), "%s/%s", path, "XI18N_OBJS");
1266793
Limit the length of path to prevent stack buffer corruption.
sprintf(filename, "%s/%s", path, "XI18N_OBJS");
*/
sprintf(filename, "%.*s/%s", BUFSIZ - 12, path, "XI18N_OBJS");
fp = fopen(filename, "r"); fp = fopen(filename, "r");
if (fp == (FILE *)NULL){ if (fp == (FILE *)NULL){
return; return;
......
...@@ -65,8 +65,8 @@ _XlcDynamicLoader( ...@@ -65,8 +65,8 @@ _XlcDynamicLoader(
XLCd lcd; XLCd lcd;
void *nlshandler; void *nlshandler;
sprintf(libpath,"%s/%s/%s", snprintf(libpath, sizeof(libpath), "%s/%s/%s",
XLOCALEDIR,name,LCLIBNAME); XLOCALEDIR, name, LCLIBNAME);
nlshandler = dlopen(libpath,LAZY); nlshandler = dlopen(libpath,LAZY);
_XlcGenericMethods = (XLCdMethods)dlsym(nlshandler,"genericMethods"); _XlcGenericMethods = (XLCdMethods)dlsym(nlshandler,"genericMethods");
lcd = _XlcCreateLC(name,_XlcGenericMethods); lcd = _XlcCreateLC(name,_XlcGenericMethods);
......
...@@ -490,8 +490,7 @@ _XlcFileName( ...@@ -490,8 +490,7 @@ _XlcFileName(
continue; continue;
name = NULL; name = NULL;
if ((5 + strlen(args[i]) + strlen(cat)) < PATH_MAX) { if (snprintf(buf, PATH_MAX, "%s/%s.dir", args[i], cat) < PATH_MAX) {
sprintf(buf, "%s/%s.dir", args[i], cat);
name = resolve_name(siname, buf, RtoL); name = resolve_name(siname, buf, RtoL);
} }
if (name == NULL) { if (name == NULL) {
...@@ -501,13 +500,13 @@ _XlcFileName( ...@@ -501,13 +500,13 @@ _XlcFileName(
/* supposed to be absolute path name */ /* supposed to be absolute path name */
file_name = name; file_name = name;
} else { } else {
file_name = Xmalloc(2 + strlen(args[i]) + if (snprintf(buf, PATH_MAX, "%s/%s", args[i], name) < PATH_MAX)
(name ? strlen (name) : 0)); file_name = strdup(buf);
if (file_name != NULL) else
sprintf(file_name, "%s/%s", args[i], name); file_name = NULL;
Xfree(name); Xfree(name);
} }
if (isreadable(file_name)) { if (file_name && isreadable(file_name)) {
break; break;
} }
Xfree(file_name); Xfree(file_name);
...@@ -541,8 +540,8 @@ _XlcResolveLocaleName( ...@@ -541,8 +540,8 @@ _XlcResolveLocaleName(
if (args[i] == NULL) if (args[i] == NULL)
continue; continue;
if ((2 + strlen (args[i]) + strlen (locale_alias)) < PATH_MAX) { if (snprintf (buf, PATH_MAX, "%s/%s", args[i], locale_alias)
sprintf (buf, "%s/%s", args[i], locale_alias); < PATH_MAX) {
name = resolve_name (lc_name, buf, LtoR); name = resolve_name (lc_name, buf, LtoR);
if (!name) { if (!name) {
if (!nlc_name) if (!nlc_name)
...@@ -641,8 +640,8 @@ _XlcLocaleDirName(char *dir_name, size_t dir_len, char *lc_name) ...@@ -641,8 +640,8 @@ _XlcLocaleDirName(char *dir_name, size_t dir_len, char *lc_name)
if (args[i] == NULL) if (args[i] == NULL)
continue; continue;
if ((2 + strlen(args[i]) + strlen(locale_alias)) < PATH_MAX) { if (snprintf (buf, PATH_MAX, "%s/%s", args[i], locale_alias)
sprintf (buf, "%s/%s", args[i], locale_alias); < PATH_MAX) {
name = resolve_name(lc_name, buf, LtoR); name = resolve_name(lc_name, buf, LtoR);
if (!name) { if (!name) {
if (!nlc_name) if (!nlc_name)
...@@ -659,8 +658,7 @@ _XlcLocaleDirName(char *dir_name, size_t dir_len, char *lc_name) ...@@ -659,8 +658,7 @@ _XlcLocaleDirName(char *dir_name, size_t dir_len, char *lc_name)
/* look at locale.dir */ /* look at locale.dir */
target_dir = args[i]; target_dir = args[i];
if ((1 + strlen (target_dir) + strlen("locale.dir")) < PATH_MAX) { if (snprintf(buf, PATH_MAX, "%s/locale.dir", target_dir) < PATH_MAX) {
sprintf(buf, "%s/locale.dir", target_dir);
target_name = resolve_name(name, buf, RtoL); target_name = resolve_name(name, buf, RtoL);
} }
if (name != lc_name) if (name != lc_name)
...@@ -734,8 +732,8 @@ _XlcLocaleLibDirName(char *dir_name, size_t dir_len, char *lc_name) ...@@ -734,8 +732,8 @@ _XlcLocaleLibDirName(char *dir_name, size_t dir_len, char *lc_name)
if (args[i] == NULL) if (args[i] == NULL)
continue; continue;
if ((2 + strlen(args[i]) + strlen(locale_alias)) < PATH_MAX) { if (snprintf (buf, PATH_MAX, "%s/%s", args[i], locale_alias)
sprintf (buf, "%s/%s", args[i], locale_alias); < PATH_MAX) {
name = resolve_name(lc_name, buf, LtoR); name = resolve_name(lc_name, buf, LtoR);
if (!name) { if (!name) {
if (!nlc_name) if (!nlc_name)
...@@ -752,8 +750,7 @@ _XlcLocaleLibDirName(char *dir_name, size_t dir_len, char *lc_name) ...@@ -752,8 +750,7 @@ _XlcLocaleLibDirName(char *dir_name, size_t dir_len, char *lc_name)
/* look at locale.dir */ /* look at locale.dir */
target_dir = args[i]; target_dir = args[i];
if ((1 + strlen (target_dir) + strlen("locale.dir")) < PATH_MAX) { if (snprintf(buf, PATH_MAX, "%s/locale.dir", target_dir) < PATH_MAX) {
sprintf(buf, "%s/locale.dir", target_dir);
target_name = resolve_name(name, buf, RtoL); target_name = resolve_name(name, buf, RtoL);
} }
if (name != lc_name) if (name != lc_name)
......
...@@ -428,17 +428,17 @@ read_charset_define( ...@@ -428,17 +428,17 @@ read_charset_define(
for (i=0; ; i++) { /* loop start */ for (i=0; ; i++) { /* loop start */
charsetd = 0; charsetd = 0;
sprintf(csd, "csd%d", i); snprintf(csd, sizeof(csd), "csd%d", i);
/* charset_name */ /* charset_name */
sprintf(name, "%s.%s", csd, "charset_name"); snprintf(name, sizeof(name), "%s.%s", csd, "charset_name");
_XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num); _XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
_XlcDbg_printValue(name,value,num); _XlcDbg_printValue(name,value,num);
if (num > 0) { if (num > 0) {
/* hackers will get truncated -- C'est la vie */ /* hackers will get truncated -- C'est la vie */
strncpy(cset_name,value[0], sizeof cset_name - 1); strncpy(cset_name,value[0], sizeof cset_name - 1);
cset_name[(sizeof cset_name) - 1] = '\0'; cset_name[(sizeof cset_name) - 1] = '\0';
sprintf(name, "%s.%s", csd , "side"); snprintf(name, sizeof(name), "%s.%s", csd , "side");
_XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num); _XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
if (num > 0) { if (num > 0) {
_XlcDbg_printValue(name,value,num); _XlcDbg_printValue(name,value,num);
...@@ -470,21 +470,21 @@ read_charset_define( ...@@ -470,21 +470,21 @@ read_charset_define(
/* side */ /* side */
charsetd->side = side ; charsetd->side = side ;
/* length */ /* length */
sprintf(name, "%s.%s", csd, "length"); snprintf(name, sizeof(name), "%s.%s", csd, "length");
_XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num); _XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
if (num > 0) { if (num > 0) {
_XlcDbg_printValue(name,value,num); _XlcDbg_printValue(name,value,num);
charsetd->char_size = atoi(value[0]); charsetd->char_size = atoi(value[0]);
} }
/* gc_number */ /* gc_number */
sprintf(name, "%s.%s", csd, "gc_number"); snprintf(name, sizeof(name), "%s.%s", csd, "gc_number");
_XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num); _XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
if (num > 0) { if (num > 0) {
_XlcDbg_printValue(name,value,num); _XlcDbg_printValue(name,value,num);
charsetd->set_size = atoi(value[0]); charsetd->set_size = atoi(value[0]);
} }
/* string_encoding */ /* string_encoding */
sprintf(name, "%s.%s", csd, "string_encoding"); snprintf(name, sizeof(name), "%s.%s", csd, "string_encoding");
_XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num); _XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
if (num > 0) { if (num > 0) {
_XlcDbg_printValue(name,value,num); _XlcDbg_printValue(name,value,num);
...@@ -495,7 +495,7 @@ read_charset_define( ...@@ -495,7 +495,7 @@ read_charset_define(
} }
} }
/* sequence */ /* sequence */
sprintf(name, "%s.%s", csd, "sequence"); snprintf(name, sizeof(name), "%s.%s", csd, "sequence");
_XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num); _XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
if (num > 0) { if (num > 0) {
_XlcDbg_printValue(name,value,num); _XlcDbg_printValue(name,value,num);
...@@ -511,7 +511,7 @@ read_charset_define( ...@@ -511,7 +511,7 @@ read_charset_define(
string_to_encoding(value[0],tmp); string_to_encoding(value[0],tmp);
} }
/* encoding_name */ /* encoding_name */
sprintf(name, "%s.%s", csd, "encoding_name"); snprintf(name, sizeof(name), "%s.%s", csd, "encoding_name");
_XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num); _XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
if (num > 0) { if (num > 0) {
_XlcDbg_printValue(name,value,num); _XlcDbg_printValue(name,value,num);
...@@ -565,10 +565,10 @@ read_segmentconversion( ...@@ -565,10 +565,10 @@ read_segmentconversion(
SegConv conversion; SegConv conversion;
for (i=0 ; ; i++) { /* loop start */ for (i=0 ; ; i++) { /* loop start */
conversion = 0; conversion = 0;
sprintf(conv, "conv%d", i); snprintf(conv, sizeof(conv), "conv%d", i);
/* length */ /* length */
sprintf(name, "%s.%s", conv, "length"); snprintf(name, sizeof(name), "%s.%s", conv, "length");
_XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num); _XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num);
if (num > 0) { if (num > 0) {
if (conversion == NULL && if (conversion == NULL &&
...@@ -585,7 +585,7 @@ read_segmentconversion( ...@@ -585,7 +585,7 @@ read_segmentconversion(
conversion->length = atoi(value[0]); conversion->length = atoi(value[0]);
/* source_encoding */ /* source_encoding */
sprintf(name, "%s.%s", conv, "source_encoding"); snprintf(name, sizeof(name), "%s.%s", conv, "source_encoding");
_XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num); _XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num);
if (num > 0) { if (num > 0) {
char *tmp; char *tmp;
...@@ -597,7 +597,7 @@ read_segmentconversion( ...@@ -597,7 +597,7 @@ read_segmentconversion(
conversion->source = srch_charset_define(tmp,&new); conversion->source = srch_charset_define(tmp,&new);
} }
/* destination_encoding */ /* destination_encoding */
sprintf(name, "%s.%s", conv, "destination_encoding"); snprintf(name, sizeof(name), "%s.%s", conv, "destination_encoding");
_XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num); _XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num);
if (num > 0) { if (num > 0) {
char *tmp; char *tmp;
...@@ -609,7 +609,7 @@ read_segmentconversion( ...@@ -609,7 +609,7 @@ read_segmentconversion(
conversion->dest = srch_charset_define(tmp,&new); conversion->dest = srch_charset_define(tmp,&new);
} }
/* range */ /* range */
sprintf(name, "%s.%s", conv, "range"); snprintf(name, sizeof(name), "%s.%s", conv, "range");
_XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num); _XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num);
if (num > 0) { if (num > 0) {
_XlcDbg_printValue(name,value,num); _XlcDbg_printValue(name,value,num);
...@@ -617,7 +617,7 @@ read_segmentconversion( ...@@ -617,7 +617,7 @@ read_segmentconversion(
&(conversion->range.start), &(conversion->range.end)); &(conversion->range.start), &(conversion->range.end));
} }
/* conversion */ /* conversion */
sprintf(name, "%s.%s", conv, "conversion"); snprintf(name, sizeof(name), "%s.%s", conv, "conversion");
_XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num); _XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num);
if (num > 0) { if (num > 0) {
_XlcDbg_printValue(name,value,num); _XlcDbg_printValue(name,value,num);
...@@ -635,6 +635,7 @@ create_ctextseg( ...@@ -635,6 +635,7 @@ create_ctextseg(
ExtdSegment ret; ExtdSegment ret;
char* ptr; char* ptr;
char* cset_name = NULL; char* cset_name = NULL;
size_t cset_len;
int i,new; int i,new;
FontScope scope; FontScope scope;
ret = (ExtdSegment)Xmalloc(sizeof(ExtdSegmentRec)); ret = (ExtdSegment)Xmalloc(sizeof(ExtdSegmentRec));
...@@ -645,7 +646,8 @@ create_ctextseg( ...@@ -645,7 +646,8 @@ create_ctextseg(
Xfree (ret); Xfree (ret);
return NULL; return NULL;
} }
cset_name = (char*) Xmalloc (strlen(ret->name) + 1); cset_len = strlen(ret->name) + 1;
cset_name = Xmalloc (cset_len);
if (cset_name == NULL) { if (cset_name == NULL) {
Xfree (ret->name); Xfree (ret->name);
Xfree (ret); Xfree (ret);
...@@ -657,10 +659,10 @@ create_ctextseg( ...@@ -657,10 +659,10 @@ create_ctextseg(
ptr++; ptr++;
if (!_XlcNCompareISOLatin1(ptr, "GL", 2)) { if (!_XlcNCompareISOLatin1(ptr, "GL", 2)) {
ret->side = XlcGL; ret->side = XlcGL;
sprintf(cset_name,"%s:%s",ret->name,"GL"); snprintf(cset_name, cset_len, "%s:%s", ret->name, "GL");
} else { } else {
ret->side = XlcGR; ret->side = XlcGR;
sprintf(cset_name,"%s:%s",ret->name,"GR"); snprintf(cset_name, cset_len, "%s:%s", ret->name, "GR");
} }
} else { } else {
ret->side = XlcGLGR; ret->side = XlcGLGR;
...@@ -731,10 +733,10 @@ load_generic( ...@@ -731,10 +733,10 @@ load_generic(
char cs[16]; char cs[16];
char name[BUFSIZ]; char name[BUFSIZ];
sprintf(cs, "cs%d", i); snprintf(cs, sizeof(cs), "cs%d", i);
/***** codeset.side *****/ /***** codeset.side *****/
sprintf(name, "%s.%s", cs , "side"); snprintf(name, sizeof(name), "%s.%s", cs , "side");
_XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num); _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
if (num > 0) { if (num > 0) {
char *tmp; char *tmp;
...@@ -761,7 +763,7 @@ load_generic( ...@@ -761,7 +763,7 @@ load_generic(
} }
/***** codeset.length *****/ /***** codeset.length *****/
sprintf(name, "%s.%s", cs , "length"); snprintf(name, sizeof(name), "%s.%s", cs , "length");
_XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num); _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
if (num > 0) { if (num > 0) {
if (codeset == NULL && (codeset = add_codeset(gen)) == NULL) if (codeset == NULL && (codeset = add_codeset(gen)) == NULL)
...@@ -772,7 +774,7 @@ load_generic( ...@@ -772,7 +774,7 @@ load_generic(
} }
/***** codeset.mb_encoding *****/ /***** codeset.mb_encoding *****/
sprintf(name, "%s.%s", cs, "mb_encoding"); snprintf(name, sizeof(name), "%s.%s", cs, "mb_encoding");
_XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num); _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
if (num > 0) { if (num > 0) {
static struct { static struct {
...@@ -808,7 +810,7 @@ load_generic( ...@@ -808,7 +810,7 @@ load_generic(
} }
/***** codeset.wc_encoding *****/ /***** codeset.wc_encoding *****/
sprintf(name, "%s.%s", cs, "wc_encoding"); snprintf(name, sizeof(name), "%s.%s", cs, "wc_encoding");
_XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num); _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
if (num > 0) { if (num > 0) {
if (codeset == NULL && (codeset = add_codeset(gen)) == NULL) if (codeset == NULL && (codeset = add_codeset(gen)) == NULL)
...@@ -819,7 +821,7 @@ load_generic( ...@@ -819,7 +821,7 @@ load_generic(
} }
/***** codeset.ct_encoding *****/ /***** codeset.ct_encoding *****/
sprintf(name, "%s.%s", cs, "ct_encoding"); snprintf(name, sizeof(name), "%s.%s", cs, "ct_encoding");
_XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num); _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
if (num > 0) { if (num > 0) {
char *encoding; char *encoding;
...@@ -861,7 +863,7 @@ load_generic( ...@@ -861,7 +863,7 @@ load_generic(
unsigned long start,end; unsigned long start,end;
ByteInfo tmpb; ByteInfo tmpb;
sprintf(name,"%s.%s%d",cs,"byte",M); snprintf(name, sizeof(name),"%s.%s%d",cs,"byte",M);
_XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num); _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
if (M == 1) { if (M == 1) {
...@@ -896,7 +898,7 @@ load_generic( ...@@ -896,7 +898,7 @@ load_generic(
/***** codeset.mb_conversion *****/ /***** codeset.mb_conversion *****/
sprintf(name, "%s.%s", cs, "mb_conversion"); snprintf(name, sizeof(name), "%s.%s", cs, "mb_conversion");
_XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num); _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
if (num > 0) { if (num > 0) {
_XlcDbg_printValue(name,value,num); _XlcDbg_printValue(name,value,num);
...@@ -908,7 +910,7 @@ load_generic( ...@@ -908,7 +910,7 @@ load_generic(
/* [\x%x,\x%x]->\x%x,... */ /* [\x%x,\x%x]->\x%x,... */
} }
/***** codeset.ct_conversion *****/ /***** codeset.ct_conversion *****/
sprintf(name, "%s.%s", cs, "ct_conversion"); snprintf(name, sizeof(name), "%s.%s", cs, "ct_conversion");
_XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num); _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
if (num > 0) { if (num > 0) {
_XlcDbg_printValue(name,value,num); _XlcDbg_printValue(name,value,num);
...@@ -920,14 +922,14 @@ load_generic( ...@@ -920,14 +922,14 @@ load_generic(
/* [\x%x,\x%x]->\x%x,... */ /* [\x%x,\x%x]->\x%x,... */
} }
/***** codeset.ct_conversion_file *****/ /***** codeset.ct_conversion_file *****/
sprintf(name, "%s.%s", cs, "ct_conversion_file"); snprintf(name, sizeof(name), "%s.%s", cs, "ct_conversion_file");
_XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num); _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
if (num > 0) { if (num > 0) {
_XlcDbg_printValue(name,value,num); _XlcDbg_printValue(name,value,num);
/* [\x%x,\x%x]->\x%x,... */ /* [\x%x,\x%x]->\x%x,... */
} }
/***** codeset.ct_extended_segment *****/ /***** codeset.ct_extended_segment *****/
sprintf(name, "%s.%s", cs, "ct_extended_segment"); snprintf(name, sizeof(name), "%s.%s", cs, "ct_extended_segment");
_XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num); _XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
if (num > 0) { if (num > 0) {
_XlcDbg_printValue(name,value,num); _XlcDbg_printValue(name,value,num);
......
...@@ -1731,10 +1731,10 @@ create_tofontcs_conv( ...@@ -1731,10 +1731,10 @@ create_tofontcs_conv(
lazy_init_all_charsets(); lazy_init_all_charsets();
for (i = 0, num = 0;; i++) { for (i = 0, num = 0;; i++) {
sprintf(buf, "fs%d.charset.name", i); snprintf(buf, sizeof(buf), "fs%d.charset.name", i);
_XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count); _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
if (count < 1) { if (count < 1) {
sprintf(buf, "fs%d.charset", i); snprintf(buf, sizeof(buf), "fs%d.charset", i);
_XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count); _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
if (count < 1) if (count < 1)
break; break;
...@@ -1749,10 +1749,10 @@ create_tofontcs_conv( ...@@ -1749,10 +1749,10 @@ create_tofontcs_conv(
/* Loop through all fontsets mentioned in the locale. */ /* Loop through all fontsets mentioned in the locale. */
for (i = 0, num = 0;; i++) { for (i = 0, num = 0;; i++) {
sprintf(buf, "fs%d.charset.name", i); snprintf(buf, sizeof(buf), "fs%d.charset.name", i);
_XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count); _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
if (count < 1) { if (count < 1) {
sprintf(buf, "fs%d.charset", i); snprintf(buf, sizeof(buf), "fs%d.charset", i);
_XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count); _XlcGetResource(lcd, "XLC_FONTSET", buf, &value, &count);
if (count < 1) if (count < 1)
break; break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment