don't use hard coded constant values
#include "xrdp.h"
#include "log.h"
+#define ASK "ask"
+#define ASK_LEN g_strlen(ASK)
+#define BASE64PREFIX "{base64}"
+#define BASE64PREFIX_LEN g_strlen(BASE64PREFIX)
+
/*****************************************************************************/
/* all login help screen events go here */
static int
@@ -370,15 +375,15 @@ xrdp_wm_show_edits(struct xrdp_wm *self, struct xrdp_bitmap *combo)
value = (char *)list_get_item(mod->values, index);
/* if the value begins with "{base64}", decode the string following it */
- if (g_strncmp("{base64}", value, 8) == 0)
+ if (g_strncmp(BASE64PREFIX, value, BASE64PREFIX_LEN) == 0)
{
- base64_length = g_strlen(value + 8);
+ base64_length = g_strlen(value + BASE64PREFIX_LEN);
plain = (char *)g_malloc(base64_length, 0);
- base64_decode(plain, value + 8, base64_length);
+ base64_decode(plain, value + BASE64PREFIX_LEN, base64_length);
g_strncpy(value, plain, g_strlen(plain));
g_free(plain);
}
- else if (g_strncmp("ask", value, 3) == 0)
+ else if (g_strncmp(ASK, value, ASK_LEN) == 0)
{
/* label */
b = xrdp_bitmap_create(95, DEFAULT_EDIT_H, self->screen->bpp,
@@ -412,17 +417,17 @@ xrdp_wm_show_edits(struct xrdp_wm *self, struct xrdp_bitmap *combo)
b->tab_stop = 1;
b->caption1 = (char *)g_malloc(256, 1);
/* ask{base64}... 3 for "ask", 8 for "{base64}" */
- if (g_strncmp("{base64}", value + 3, 8) == 0)
+ if (g_strncmp(BASE64PREFIX, value + ASK_LEN, BASE64PREFIX_LEN) == 0)
{
- base64_length = g_strlen(value + 3 + 8);
+ base64_length = g_strlen(value + ASK_LEN + BASE64PREFIX_LEN);
plain = (char *)g_malloc(base64_length, 0);
- base64_decode(plain, value + 3 + 8, base64_length);
+ base64_decode(plain, value + ASK_LEN + BASE64PREFIX_LEN, base64_length);
g_strncpy(b->caption1, plain, 255);
g_free(plain);
}
else
{
- g_strncpy(b->caption1, value + 3, 255);
+ g_strncpy(b->caption1, value + ASK_LEN, 255);
}
b->edit_pos = g_mbstowcs(0, b->caption1, 0);
