Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 314473 | Differences between
and this patch

Collapse All | Expand All

(-)sx/ssl.c (-5 / +5 lines)
Lines 281-287 Link Here
281
				id++;
281
				id++;
282
			}
282
			}
283
			/* Check if we're not out of space */
283
			/* Check if we're not out of space */
284
			if (id == SX_SSL_CONN_EXTERNAL_ID_MAX_COUNT) {
284
			if (id == SX_CONN_EXTERNAL_ID_MAX_COUNT) {
285
				sk_GENERAL_NAME_pop_free(altnames, GENERAL_NAME_free);
285
				sk_GENERAL_NAME_pop_free(altnames, GENERAL_NAME_free);
286
				goto end;
286
				goto end;
287
			}
287
			}
Lines 310-316 Link Here
310
		_sx_debug(ZONE, "external_id: Found(%d) commonName: '%s'", id, sc->external_id[id]);
310
		_sx_debug(ZONE, "external_id: Found(%d) commonName: '%s'", id, sc->external_id[id]);
311
		OPENSSL_free(buff);
311
		OPENSSL_free(buff);
312
		/* Check if we're not out of space */
312
		/* Check if we're not out of space */
313
		if (id == SX_SSL_CONN_EXTERNAL_ID_MAX_COUNT)
313
		if (id == SX_CONN_EXTERNAL_ID_MAX_COUNT)
314
			goto end;
314
			goto end;
315
	}
315
	}
316
316
Lines 653-659 Link Here
653
    SSL_set_options(sc->ssl, SSL_OP_NO_TICKET);
653
    SSL_set_options(sc->ssl, SSL_OP_NO_TICKET);
654
654
655
    /* empty external_id */
655
    /* empty external_id */
656
    for (i = 0; i < SX_SSL_CONN_EXTERNAL_ID_MAX_COUNT; i++)
656
    for (i = 0; i < SX_CONN_EXTERNAL_ID_MAX_COUNT; i++)
657
    	sc->external_id[i] = NULL;
657
    	sc->external_id[i] = NULL;
658
658
659
    /* alternate pemfile */
659
    /* alternate pemfile */
Lines 744-750 Link Here
744
    SSL_set_accept_state(sc->ssl);
744
    SSL_set_accept_state(sc->ssl);
745
745
746
    /* empty external_id */
746
    /* empty external_id */
747
    for (i = 0; i < SX_SSL_CONN_EXTERNAL_ID_MAX_COUNT; i++)
747
    for (i = 0; i < SX_CONN_EXTERNAL_ID_MAX_COUNT; i++)
748
    	sc->external_id[i] = NULL;
748
    	sc->external_id[i] = NULL;
749
749
750
    /* buffer queue */
750
    /* buffer queue */
Lines 772-778 Link Here
772
        return;
772
        return;
773
    }
773
    }
774
774
775
    for (i = 0; i < SX_SSL_CONN_EXTERNAL_ID_MAX_COUNT; i++)
775
    for (i = 0; i < SX_CONN_EXTERNAL_ID_MAX_COUNT; i++)
776
    	if(sc->external_id[i] != NULL)
776
    	if(sc->external_id[i] != NULL)
777
    		free(sc->external_id[i]);
777
    		free(sc->external_id[i]);
778
    	else
778
    	else
(-)sx/plugins.h (-2 / +3 lines)
Lines 45-50 Link Here
45
#define SX_ERR_COMPRESS_FAILURE (0x021)
45
#define SX_ERR_COMPRESS_FAILURE (0x021)
46
46
47
47
48
#define SX_CONN_EXTERNAL_ID_MAX_COUNT 8
49
48
#ifdef __cplusplus
50
#ifdef __cplusplus
49
extern "C" {
51
extern "C" {
50
#endif
52
#endif
Lines 73-84 Link Here
73
#define SX_SSL_STATE_WANT_READ  (1)
75
#define SX_SSL_STATE_WANT_READ  (1)
74
#define SX_SSL_STATE_WANT_WRITE (2)
76
#define SX_SSL_STATE_WANT_WRITE (2)
75
#define SX_SSL_STATE_ERROR      (3)
77
#define SX_SSL_STATE_ERROR      (3)
76
#define SX_SSL_CONN_EXTERNAL_ID_MAX_COUNT 8
77
78
78
/** a single conn */
79
/** a single conn */
79
typedef struct _sx_ssl_conn_st {
80
typedef struct _sx_ssl_conn_st {
80
    /* id and ssf for sasl external auth */
81
    /* id and ssf for sasl external auth */
81
    char        *external_id[SX_SSL_CONN_EXTERNAL_ID_MAX_COUNT];
82
    char        *external_id[SX_CONN_EXTERNAL_ID_MAX_COUNT];
82
83
83
    SSL         *ssl;
84
    SSL         *ssl;
84
85
(-)sx/sasl_gsasl.c (-6 / +9 lines)
Lines 34-40 Link Here
34
    sx_sasl_callback_t          cb;
34
    sx_sasl_callback_t          cb;
35
    void                        *cbarg;
35
    void                        *cbarg;
36
36
37
    char                        *ext_id[SX_SSL_CONN_EXTERNAL_ID_MAX_COUNT];
37
    char                        *ext_id[SX_CONN_EXTERNAL_ID_MAX_COUNT];
38
} *_sx_sasl_t;
38
} *_sx_sasl_t;
39
39
40
/* Per-session library handle. */
40
/* Per-session library handle. */
Lines 405-411 Link Here
405
    _sx_sasl_t ctx = (_sx_sasl_t) p->private;
405
    _sx_sasl_t ctx = (_sx_sasl_t) p->private;
406
    char *buf = NULL, *out = NULL, *realm = NULL, **ext_id;
406
    char *buf = NULL, *out = NULL, *realm = NULL, **ext_id;
407
    char hostname[256];
407
    char hostname[256];
408
    int ret, i;
408
    int ret;
409
#ifdef HAVE_SSL
410
    int i;
411
#endif
409
    size_t buflen, outlen;
412
    size_t buflen, outlen;
410
413
411
    if(mech != NULL) {
414
    if(mech != NULL) {
Lines 454-460 Link Here
454
        if (ext_id != NULL) {
457
        if (ext_id != NULL) {
455
			//_sx_debug(ZONE, "sasl context ext id '%s'", ext_id);
458
			//_sx_debug(ZONE, "sasl context ext id '%s'", ext_id);
456
			/* if there is, store it for later */
459
			/* if there is, store it for later */
457
			for (i = 0; i < SX_SSL_CONN_EXTERNAL_ID_MAX_COUNT; i++)
460
			for (i = 0; i < SX_CONN_EXTERNAL_ID_MAX_COUNT; i++)
458
				if (ext_id[i] != NULL) {
461
				if (ext_id[i] != NULL) {
459
					ctx->ext_id[i] = strdup(ext_id[i]);
462
					ctx->ext_id[i] = strdup(ext_id[i]);
460
				} else {
463
				} else {
Lines 843-849 Link Here
843
			_sx_debug(ZONE, "sasl external");
846
			_sx_debug(ZONE, "sasl external");
844
			_sx_debug(ZONE, "sasl creds.authzid is '%s'", creds.authzid);
847
			_sx_debug(ZONE, "sasl creds.authzid is '%s'", creds.authzid);
845
848
846
            for (i = 0; i < SX_SSL_CONN_EXTERNAL_ID_MAX_COUNT; i++) {
849
            for (i = 0; i < SX_CONN_EXTERNAL_ID_MAX_COUNT; i++) {
847
            	if (ctx->ext_id[i] == NULL)
850
            	if (ctx->ext_id[i] == NULL)
848
            		break;
851
            		break;
849
            	_sx_debug(ZONE, "sasl ext_id(%d) is '%s'", i, ctx->ext_id[i]);
852
            	_sx_debug(ZONE, "sasl ext_id(%d) is '%s'", i, ctx->ext_id[i]);
Lines 893-899 Link Here
893
896
894
    if (ctx->gsasl_ctx != NULL) gsasl_done (ctx->gsasl_ctx);
897
    if (ctx->gsasl_ctx != NULL) gsasl_done (ctx->gsasl_ctx);
895
    if (ctx->appname != NULL) free(ctx->appname);
898
    if (ctx->appname != NULL) free(ctx->appname);
896
    for (i = 0; i < SX_SSL_CONN_EXTERNAL_ID_MAX_COUNT; i++)
899
    for (i = 0; i < SX_CONN_EXTERNAL_ID_MAX_COUNT; i++)
897
    	if(ctx->ext_id[i] != NULL)
900
    	if(ctx->ext_id[i] != NULL)
898
    		free(ctx->ext_id[i]);
901
    		free(ctx->ext_id[i]);
899
    	else
902
    	else
Lines 926-932 Link Here
926
    ctx->appname = strdup(appname);
929
    ctx->appname = strdup(appname);
927
    ctx->cb = cb;
930
    ctx->cb = cb;
928
    ctx->cbarg = cbarg;
931
    ctx->cbarg = cbarg;
929
    for (i = 0; i < SX_SSL_CONN_EXTERNAL_ID_MAX_COUNT; i++)
932
    for (i = 0; i < SX_CONN_EXTERNAL_ID_MAX_COUNT; i++)
930
    	ctx->ext_id[i] = NULL;
933
    	ctx->ext_id[i] = NULL;
931
934
932
    ret = gsasl_init(&ctx->gsasl_ctx);
935
    ret = gsasl_init(&ctx->gsasl_ctx);

Return to bug 314473