~ubuntu-branches/ubuntu/gutsy/vnc4/gutsy

« back to all changes in this revision

Viewing changes to unix/xc/extras/Xpm/lib/Info.c

  • Committer: Bazaar Package Importer
  • Author(s): Ola Lundqvist
  • Date: 2006-05-15 20:35:17 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20060515203517-l4lre1ku942mn26k
Tags: 4.1.1+X4.3.0-10
* Correction of critical security issue. Thanks to Martin Kogler
  <e9925248@student.tuwien.ac.at> that informed me about the issue,
  and provided the patch.
  This flaw was originally found by Steve Wiseman of intelliadmin.com.
* Applied patch from Javier Kohen <jkohen@users.sourceforge.net> that
  inform the user that only 8 first characters of the password will
  actually be used when typing more than 8 characters, closes:
  #355619.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (C) 1989-95 GROUPE BULL
 
3
 *
 
4
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 
5
 * of this software and associated documentation files (the "Software"), to
 
6
 * deal in the Software without restriction, including without limitation the
 
7
 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 
8
 * sell copies of the Software, and to permit persons to whom the Software is
 
9
 * furnished to do so, subject to the following conditions:
 
10
 *
 
11
 * The above copyright notice and this permission notice shall be included in
 
12
 * all copies or substantial portions of the Software.
 
13
 *
 
14
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 
15
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 
16
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
 
17
 * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 
18
 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 
19
 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
20
 *
 
21
 * Except as contained in this notice, the name of GROUPE BULL shall not be
 
22
 * used in advertising or otherwise to promote the sale, use or other dealings
 
23
 * in this Software without prior written authorization from GROUPE BULL.
 
24
 */
 
25
 
 
26
/*****************************************************************************\
 
27
*  Info.c:                                                                    *
 
28
*                                                                             *
 
29
*  XPM library                                                                *
 
30
*  Functions related to the XpmInfo structure.                                *
 
31
*                                                                             *
 
32
*  Developed by Arnaud Le Hors                                                *
 
33
\*****************************************************************************/
 
34
 
 
35
#include "XpmI.h"
 
36
 
 
37
/*
 
38
 * Init returned data to free safely later on
 
39
 */
 
40
void
 
41
xpmInitXpmInfo(info)
 
42
    XpmInfo *info;
 
43
{
 
44
    if (info) {
 
45
        info->hints_cmt = NULL;
 
46
        info->colors_cmt = NULL;
 
47
        info->pixels_cmt = NULL;
 
48
        info->extensions = NULL;
 
49
        info->nextensions = 0;
 
50
    }
 
51
}
 
52
 
 
53
/*
 
54
 * Free the XpmInfo data which have been allocated
 
55
 */
 
56
void
 
57
XpmFreeXpmInfo(info)
 
58
    XpmInfo *info;
 
59
{
 
60
    if (info) {
 
61
        if (info->valuemask & XpmComments) {
 
62
            if (info->hints_cmt) {
 
63
                XpmFree(info->hints_cmt);
 
64
                info->hints_cmt = NULL;
 
65
            }
 
66
            if (info->colors_cmt) {
 
67
                XpmFree(info->colors_cmt);
 
68
                info->colors_cmt = NULL;
 
69
            }
 
70
            if (info->pixels_cmt) {
 
71
                XpmFree(info->pixels_cmt);
 
72
                info->pixels_cmt = NULL;
 
73
            }
 
74
        }
 
75
        if (info->valuemask & XpmReturnExtensions && info->nextensions) {
 
76
            XpmFreeExtensions(info->extensions, info->nextensions);
 
77
            info->extensions = NULL;
 
78
            info->nextensions = 0;
 
79
        }
 
80
        info->valuemask = 0;
 
81
    }
 
82
}
 
83
 
 
84
/*
 
85
 * Set the XpmInfo valuemask to retrieve required info
 
86
 */
 
87
void
 
88
xpmSetInfoMask(info, attributes)
 
89
    XpmInfo *info;
 
90
    XpmAttributes *attributes;
 
91
{
 
92
    info->valuemask = 0;
 
93
    if (attributes->valuemask & XpmReturnInfos)
 
94
        info->valuemask |= XpmReturnComments;
 
95
    if (attributes->valuemask & XpmReturnExtensions)
 
96
        info->valuemask |= XpmReturnExtensions;
 
97
}
 
98
 
 
99
/*
 
100
 * Fill in the XpmInfo with the XpmAttributes
 
101
 */
 
102
void
 
103
xpmSetInfo(info, attributes)
 
104
    XpmInfo *info;
 
105
    XpmAttributes *attributes;
 
106
{
 
107
    info->valuemask = 0;
 
108
    if (attributes->valuemask & XpmInfos) {
 
109
        info->valuemask |= XpmComments | XpmColorTable;
 
110
        info->hints_cmt = attributes->hints_cmt;
 
111
        info->colors_cmt = attributes->colors_cmt;
 
112
        info->pixels_cmt = attributes->pixels_cmt;
 
113
    }
 
114
    if (attributes->valuemask & XpmExtensions) {
 
115
        info->valuemask |= XpmExtensions;
 
116
        info->extensions = attributes->extensions;
 
117
        info->nextensions = attributes->nextensions;
 
118
    }
 
119
    if (attributes->valuemask & XpmHotspot) {
 
120
        info->valuemask |= XpmHotspot;
 
121
        info->x_hotspot = attributes->x_hotspot;
 
122
        info->y_hotspot = attributes->y_hotspot;
 
123
    }
 
124
}