Ignore:
Timestamp:
May 12, 2014, 8:58:38 PM (11 years ago)
Author:
Silvan Scherrer
Message:

Samba 3.6: updated vendor to latest version

Location:
vendor/current/source3/web
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • vendor/current/source3/web/cgi.c

    r740 r860  
    4949static char *C_user;
    5050static char *C_pass;
     51static char *C_nonce;
    5152static bool inetd_server;
    5253static bool got_request;
     
    330331
    331332        if (!setuid(0)) {
    332                 C_pass = secrets_fetch_generic("root", "SWAT");
    333                 if (C_pass == NULL) {
    334                         char *tmp_pass = NULL;
    335                         tmp_pass = generate_random_password(talloc_tos(),
    336                                                             16, 16);
    337                         if (tmp_pass == NULL) {
    338                                 printf("%sFailed to create random nonce for "
    339                                        "SWAT session\n<br>%s\n", head, tail);
    340                                 exit(0);
    341                         }
    342                         secrets_store_generic("root", "SWAT", tmp_pass);
    343                         C_pass = SMB_STRDUP(tmp_pass);
    344                         TALLOC_FREE(tmp_pass);
    345                 }
     333                C_pass = SMB_STRDUP(cgi_nonce());
    346334        }
    347335        setuid(pwd->pw_uid);
     
    457445{
    458446        return(C_pass);
     447}
     448
     449/***************************************************************************
     450return a ptr to the nonce
     451  ***************************************************************************/
     452char *cgi_nonce(void)
     453{
     454        const char *head = "Content-Type: text/html\r\n\r\n<HTML><BODY><H1>SWAT installation Error</H1>\n";
     455        const char *tail = "</BODY></HTML>\r\n";
     456        C_nonce = secrets_fetch_generic("root", "SWAT");
     457        if (C_nonce == NULL) {
     458                char *tmp_pass = NULL;
     459                tmp_pass = generate_random_password(talloc_tos(),
     460                                                    16, 16);
     461                if (tmp_pass == NULL) {
     462                        printf("%sFailed to create random nonce for "
     463                               "SWAT session\n<br>%s\n", head, tail);
     464                        exit(0);
     465                }
     466                secrets_store_generic("root", "SWAT", tmp_pass);
     467                C_nonce = SMB_STRDUP(tmp_pass);
     468                TALLOC_FREE(tmp_pass);
     469        }
     470        return(C_nonce);
    459471}
    460472
  • vendor/current/source3/web/swat.c

    r746 r860  
    155155        uint8_t token[16];
    156156        int i;
     157        char *nonce = cgi_nonce();
    157158
    158159        token_str[0] = '\0';
     
    168169                MD5Update(&md5_ctx, (uint8_t *)pass, strlen(pass));
    169170        }
     171        MD5Update(&md5_ctx, (uint8_t *)nonce, strlen(nonce));
    170172
    171173        MD5Final(token, &md5_ctx);
     
    267269                printf("Expires: 0\r\n");
    268270        }
    269         printf("Content-type: text/html\r\n\r\n");
     271        printf("Content-type: text/html\r\n");
     272        printf("X-Frame-Options: DENY\r\n\r\n");
    270273
    271274        if (!include_html("include/header.html")) {
  • vendor/current/source3/web/swat_proto.h

    r615 r860  
    3333char *cgi_user_name(void);
    3434char *cgi_user_pass(void);
     35char *cgi_nonce(void);
    3536void cgi_setup(const char *rootdir, int auth_required);
    3637const char *cgi_baseurl(void);
Note: See TracChangeset for help on using the changeset viewer.