~ubuntu-branches/ubuntu/quantal/nspr/quantal-security

« back to all changes in this revision

Viewing changes to mozilla/nsprpub/pr/src/md/unix/uxproces.c

  • Committer: Package Import Robot
  • Author(s): Jamie Strandboge
  • Date: 2013-01-10 10:56:12 UTC
  • mfrom: (1.3.4)
  • Revision ID: package-import@ubuntu.com-20130110105612-zo087hhaexilklvu
Tags: 4.9.4-0ubuntu0.12.10.1
* New upstream release to support security fixes in nss. Dropped the
  following patches:
  - debian/patches/30_pkgconfig.patch (included upstream)
  - debian/patches/38_hurd.patch (included upstream)
  - debian/patches/99_configure.patch (no longer required)
  - debian/patches/sonames.patch (no longer required)
* debian/libnsp4.symbols: added PR_GetThreadName@Base and
  PR_SetCurrentThreadName@Base

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
 
/* ***** BEGIN LICENSE BLOCK *****
3
 
 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
4
 
 *
5
 
 * The contents of this file are subject to the Mozilla Public License Version
6
 
 * 1.1 (the "License"); you may not use this file except in compliance with
7
 
 * the License. You may obtain a copy of the License at
8
 
 * http://www.mozilla.org/MPL/
9
 
 *
10
 
 * Software distributed under the License is distributed on an "AS IS" basis,
11
 
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12
 
 * for the specific language governing rights and limitations under the
13
 
 * License.
14
 
 *
15
 
 * The Original Code is the Netscape Portable Runtime (NSPR).
16
 
 *
17
 
 * The Initial Developer of the Original Code is
18
 
 * Netscape Communications Corporation.
19
 
 * Portions created by the Initial Developer are Copyright (C) 1998-2000
20
 
 * the Initial Developer. All Rights Reserved.
21
 
 *
22
 
 * Contributor(s):
23
 
 *
24
 
 * Alternatively, the contents of this file may be used under the terms of
25
 
 * either the GNU General Public License Version 2 or later (the "GPL"), or
26
 
 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
27
 
 * in which case the provisions of the GPL or the LGPL are applicable instead
28
 
 * of those above. If you wish to allow use of your version of this file only
29
 
 * under the terms of either the GPL or the LGPL, and not to allow others to
30
 
 * use your version of this file under the terms of the MPL, indicate your
31
 
 * decision by deleting the provisions above and replace them with the notice
32
 
 * and other provisions required by the GPL or the LGPL. If you do not delete
33
 
 * the provisions above, a recipient may use your version of this file under
34
 
 * the terms of any one of the MPL, the GPL or the LGPL.
35
 
 *
36
 
 * ***** END LICENSE BLOCK ***** */
 
2
/* This Source Code Form is subject to the terms of the Mozilla Public
 
3
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 
4
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
37
5
 
38
6
#include "primpl.h"
39
7
 
48
16
#endif
49
17
 
50
18
#if defined(DARWIN)
 
19
#if defined(HAVE_CRT_EXTERNS_H)
51
20
#include <crt_externs.h>
 
21
#endif
52
22
#else
53
23
PR_IMPORT_DATA(char **) environ;
54
24
#endif
185
155
 
186
156
        if (NULL == childEnvp) {
187
157
#ifdef DARWIN
 
158
#ifdef HAVE_CRT_EXTERNS_H
188
159
            childEnvp = *(_NSGetEnviron());
189
160
#else
 
161
            /* _NSGetEnviron() is not available on iOS. */
 
162
            PR_DELETE(process);
 
163
            PR_SetError(PR_NOT_IMPLEMENTED_ERROR, 0);
 
164
            return NULL;
 
165
#endif
 
166
#else
190
167
            childEnvp = environ;
191
168
#endif
192
169
        }
 
170
 
193
171
        for (nEnv = 0; childEnvp[nEnv]; nEnv++) {
194
172
        }
195
173
        newEnvp = (char **) PR_MALLOC((nEnv + 2) * sizeof(char *));
733
711
    int rv;
734
712
    int flags;
735
713
#endif
736
 
#ifdef SUNOS4
737
 
#define _PR_NBIO_FLAG FNDELAY
738
 
#else
739
 
#define _PR_NBIO_FLAG O_NONBLOCK
740
 
#endif
741
714
 
742
715
#ifdef AIX
743
716
    {
761
734
    rv = pipe(pr_wp.pipefd);
762
735
    PR_ASSERT(0 == rv);
763
736
    flags = fcntl(pr_wp.pipefd[0], F_GETFL, 0);
764
 
    fcntl(pr_wp.pipefd[0], F_SETFL, flags | _PR_NBIO_FLAG);
 
737
    fcntl(pr_wp.pipefd[0], F_SETFL, flags | O_NONBLOCK);
765
738
    flags = fcntl(pr_wp.pipefd[1], F_GETFL, 0);
766
 
    fcntl(pr_wp.pipefd[1], F_SETFL, flags | _PR_NBIO_FLAG);
 
739
    fcntl(pr_wp.pipefd[1], F_SETFL, flags | O_NONBLOCK);
767
740
 
768
741
#ifndef _PR_SHARE_CLONES
769
742
    pr_InstallSigchldHandler();