~ubuntu-branches/ubuntu/trusty/postgresql-9.3/trusty-proposed

« back to all changes in this revision

Viewing changes to src/backend/utils/adt/rowtypes.c

  • Committer: Package Import Robot
  • Author(s): Martin Pitt
  • Date: 2014-07-24 16:13:59 UTC
  • mfrom: (1.1.8)
  • Revision ID: package-import@ubuntu.com-20140724161359-uk325qfv03euxuuh
Tags: 9.3.5-0ubuntu0.14.04.1
* New upstream bug fix release: (LP: #1348176)
  - pg_upgrade: Users who upgraded to version 9.3 using pg_upgrade may have
    an issue with transaction information which causes VACUUM to eventually
    fail. These users should run the script provided in the release notes to
    determine if their installation is affected, and then take the remedy
    steps outlined there.
  - Various data integrity and other bug fixes.
  - Secure Unix-domain sockets of temporary postmasters started during make
    check.
    Any local user able to access the socket file could connect as the
    server's bootstrap superuser, then proceed to execute arbitrary code as
    the operating-system user running the test, as we previously noted in
    CVE-2014-0067. This change defends against that risk by placing the
    server's socket in a temporary, mode 0700 subdirectory of /tmp.
  - See release notes for details:
    http://www.postgresql.org/about/news/1534/
* Remove pg_regress patches to support --host=/path, obsolete with above
  upstream changes and not applicable any more.
* Drop tcl8.6 patch, applied upstream.
* Add missing logrotate test dependency.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
#include "access/htup_details.h"
20
20
#include "catalog/pg_type.h"
 
21
#include "funcapi.h"
21
22
#include "libpq/pqformat.h"
22
23
#include "utils/builtins.h"
23
24
#include "utils/lsyscache.h"
277
278
        /*
278
279
         * We cannot return tuple->t_data because heap_form_tuple allocates it as
279
280
         * part of a larger chunk, and our caller may expect to be able to pfree
280
 
         * our result.  So must copy the info into a new palloc chunk.
 
281
         * our result.  So must copy the info into a new palloc chunk.
281
282
         */
282
283
        result = (HeapTupleHeader) palloc(tuple->t_len);
283
284
        memcpy(result, tuple->t_data, tuple->t_len);
621
622
        /*
622
623
         * We cannot return tuple->t_data because heap_form_tuple allocates it as
623
624
         * part of a larger chunk, and our caller may expect to be able to pfree
624
 
         * our result.  So must copy the info into a new palloc chunk.
 
625
         * our result.  So must copy the info into a new palloc chunk.
625
626
         */
626
627
        result = (HeapTupleHeader) palloc(tuple->t_len);
627
628
        memcpy(result, tuple->t_data, tuple->t_len);
859
860
 
860
861
        /*
861
862
         * Scan corresponding columns, allowing for dropped columns in different
862
 
         * places in the two rows.      i1 and i2 are physical column indexes, j is
 
863
         * places in the two rows.  i1 and i2 are physical column indexes, j is
863
864
         * the logical column index.
864
865
         */
865
866
        i1 = i2 = j = 0;
1094
1095
 
1095
1096
        /*
1096
1097
         * Scan corresponding columns, allowing for dropped columns in different
1097
 
         * places in the two rows.      i1 and i2 are physical column indexes, j is
 
1098
         * places in the two rows.  i1 and i2 are physical column indexes, j is
1098
1099
         * the logical column index.
1099
1100
         */
1100
1101
        i1 = i2 = j = 0;